get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/810099/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 810099,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/810099/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20170905122010.19409-4-aduskett@gmail.com/",
    "project": {
        "id": 27,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/27/?format=api",
        "name": "Buildroot development",
        "link_name": "buildroot",
        "list_id": "buildroot.buildroot.org",
        "list_email": "buildroot@buildroot.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170905122010.19409-4-aduskett@gmail.com>",
    "list_archive_url": null,
    "date": "2017-09-05T12:20:08",
    "name": "[1/1] libxml2: bump to version 2.9.5",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "809dd8f5970da7b4006b7233d539b4c5c73d1355",
    "submitter": {
        "id": 69311,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/69311/?format=api",
        "name": "Adam Duskett",
        "email": "Aduskett@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20170905122010.19409-4-aduskett@gmail.com/mbox/",
    "series": [
        {
            "id": 1568,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/1568/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=1568",
            "date": "2017-09-05T12:20:08",
            "name": "[1/1] libxml2: bump to version 2.9.5",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/1568/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/810099/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/810099/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<buildroot-bounces@busybox.net>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "buildroot@lists.busybox.net"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "buildroot@osuosl.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=busybox.net\n\t(client-ip=140.211.166.133; helo=hemlock.osuosl.org;\n\tenvelope-from=buildroot-bounces@busybox.net;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"YXQMWIjW\"; dkim-atps=neutral"
        ],
        "Received": [
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xmm5c01Mpz9sRV\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 22:20:50 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 990F68793B;\n\tTue,  5 Sep 2017 12:20:48 +0000 (UTC)",
            "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 5dAWCMzg5u9l; Tue,  5 Sep 2017 12:20:47 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 3BEE287893;\n\tTue,  5 Sep 2017 12:20:47 +0000 (UTC)",
            "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id 466411C0424\n\tfor <buildroot@lists.busybox.net>;\n\tTue,  5 Sep 2017 12:20:40 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 3E2572FE5C\n\tfor <buildroot@lists.busybox.net>;\n\tTue,  5 Sep 2017 12:20:40 +0000 (UTC)",
            "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id hNm-2WANcEsO for <buildroot@lists.busybox.net>;\n\tTue,  5 Sep 2017 12:20:38 +0000 (UTC)",
            "from mail-io0-f172.google.com (mail-io0-f172.google.com\n\t[209.85.223.172])\n\tby silver.osuosl.org (Postfix) with ESMTPS id C303C2FADF\n\tfor <buildroot@buildroot.org>; Tue,  5 Sep 2017 12:20:38 +0000 (UTC)",
            "by mail-io0-f172.google.com with SMTP id q64so15099488iod.5\n\tfor <buildroot@buildroot.org>; Tue, 05 Sep 2017 05:20:38 -0700 (PDT)",
            "from localhost.localdomain (mail.codeblue.com. [65.183.183.198])\n\tby smtp.gmail.com with ESMTPSA id\n\tr9sm155078itc.13.2017.09.05.05.20.36\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 05 Sep 2017 05:20:36 -0700 (PDT)"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=pSz0euPywEUg/UGMmtJezybfQKzlLDHFo8G/HuXE4uo=;\n\tb=YXQMWIjWRUW6wFd82u6AHcYR9Cdn1EL8vplL12EPrv67L10qSGwXjP3gSXFs1Y4slT\n\tztT7ctlh+QTz8zjdWXIslrYdMGKIUtC/wo9X3721GslTdUoQ0tfxwYyOQfAIpSD7d7t0\n\th9r+Oe/17TATl0CDoPWeq57NISWKJm2W/hZ9fgICneAXtyrYl35I7W7hUkVSDqpmI52j\n\t8vx0G9OXBaaPC8nzOuomJo19QJPTh4AdtR8qY5Lda0lzcApqw/0GFzTAucVTvdA8ToxG\n\ttaa2OFTZ5XW7WECEgOEx6J4WB3Ec8N72X++KEzItC8s2TpDmVrQvoI8aEJmuU6cCleI5\n\tf2wA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=pSz0euPywEUg/UGMmtJezybfQKzlLDHFo8G/HuXE4uo=;\n\tb=sFgiT8+SFRvPx5XDvIVxhT2+AfcBh2K0O33jMi8ADqEjlR2KPMqVPSzDJLbGBs8kZq\n\tTh+bGSKEmny2xVVv/IxF4Vqk4wZCyf1FN33UCio+S+ytn4s5bzxz5OtDYiNcRAguVJqg\n\t+PtEwYPQT3dWxlwYcoTkDWZnHovJMw25PaOVWWaJSCW4CeQctrHz8EO4l2ZotMUpFH1u\n\t7R1JT0t6TIF8zF3SzPeYsVfeawiS2WxB2GaY2hBxxhRyZ/KHsCyxvxuy0HNzZww3Xghq\n\tTOQKxX0VewzNvvRG85qQ2may/+Wh3IcYwEsajKQ7Ru53JQTTaAPRa7XarhezKFK9ZAQb\n\t02QQ==",
        "X-Gm-Message-State": "AHPjjUg4iQ4r6BWeruBjntmx7FOtXKwOVUdKkaqmM5ocg2CRiyKZSQqq\n\trwDQ+NyY2hW1Vfxvl+I=",
        "X-Google-Smtp-Source": "ADKCNb4Dad91KMpopSB+h18DU26q0ZizzW8od4zVesH8aOJDgQQCMbAgjeOKsYdozO2Tht5Pim1/4A==",
        "X-Received": "by 10.107.212.12 with SMTP id l12mr4183529iog.48.1504614037571; \n\tTue, 05 Sep 2017 05:20:37 -0700 (PDT)",
        "From": "Adam Duskett <aduskett@gmail.com>",
        "To": "buildroot@buildroot.org",
        "Date": "Tue,  5 Sep 2017 08:20:08 -0400",
        "Message-Id": "<20170905122010.19409-4-aduskett@gmail.com>",
        "X-Mailer": "git-send-email 2.13.5",
        "In-Reply-To": "<20170905122010.19409-1-aduskett@gmail.com>",
        "References": "<20170905122010.19409-1-aduskett@gmail.com>",
        "Cc": "Adam Duskett <aduskett@gmail.com>",
        "Subject": "[Buildroot] [PATCH 1/1] libxml2: bump to version 2.9.5",
        "X-BeenThere": "buildroot@busybox.net",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Discussion and development of buildroot <buildroot.busybox.net>",
        "List-Unsubscribe": "<http://lists.busybox.net/mailman/options/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=unsubscribe>",
        "List-Archive": "<http://lists.busybox.net/pipermail/buildroot/>",
        "List-Post": "<mailto:buildroot@busybox.net>",
        "List-Help": "<mailto:buildroot-request@busybox.net?subject=help>",
        "List-Subscribe": "<http://lists.busybox.net/mailman/listinfo/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "buildroot-bounces@busybox.net",
        "Sender": "\"buildroot\" <buildroot-bounces@busybox.net>"
    },
    "content": "Signed-off-by: Adam Duskett <aduskett@gmail.com>\n---\n ...ix-XPointer-paths-beginning-with-range-to.patch | 178 ---------------\n ...sallow-namespace-nodes-in-XPointer-ranges.patch | 253 ---------------------\n package/libxml2/libxml2.hash                       |   2 +-\n package/libxml2/libxml2.mk                         |   2 +-\n 4 files changed, 2 insertions(+), 433 deletions(-)\n delete mode 100644 package/libxml2/0001-Fix-XPointer-paths-beginning-with-range-to.patch\n delete mode 100644 package/libxml2/0002-Disallow-namespace-nodes-in-XPointer-ranges.patch",
    "diff": "diff --git a/package/libxml2/0001-Fix-XPointer-paths-beginning-with-range-to.patch b/package/libxml2/0001-Fix-XPointer-paths-beginning-with-range-to.patch\ndeleted file mode 100644\nindex 42570c635..000000000\n--- a/package/libxml2/0001-Fix-XPointer-paths-beginning-with-range-to.patch\n+++ /dev/null\n@@ -1,178 +0,0 @@\n-From 9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e Mon Sep 17 00:00:00 2001\n-From: Nick Wellnhofer <wellnhofer@aevum.de>\n-Date: Tue, 28 Jun 2016 14:22:23 +0200\n-Subject: [PATCH] Fix XPointer paths beginning with range-to\n-\n-The old code would invoke the broken xmlXPtrRangeToFunction. range-to\n-isn't really a function but a special kind of location step. Remove\n-this function and always handle range-to in the XPath code.\n-\n-The old xmlXPtrRangeToFunction could also be abused to trigger a\n-use-after-free error with the potential for remote code execution.\n-\n-Found with afl-fuzz.\n-\n-Fixes CVE-2016-5131.\n-\n-Signed-off-by: Baruch Siach <baruch@tkos.co.il>\n----\n-Patch status: upstream commit 9ab01a277d7\n-\n- result/XPath/xptr/vidbase | 13 ++++++++\n- test/XPath/xptr/vidbase   |  1 +\n- xpath.c                   |  7 ++++-\n- xpointer.c                | 76 ++++-------------------------------------------\n- 4 files changed, 26 insertions(+), 71 deletions(-)\n-\n-diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase\n-index 8b9e92d66d97..f19193e70edb 100644\n---- a/result/XPath/xptr/vidbase\n-+++ b/result/XPath/xptr/vidbase\n-@@ -17,3 +17,16 @@ Object is a Location Set:\n-   To node\n-     ELEMENT p\n- \n-+\n-+========================\n-+Expression: xpointer(range-to(id('chapter2')))\n-+Object is a Location Set:\n-+1 :   Object is a range :\n-+  From node\n-+     /\n-+  To node\n-+    ELEMENT chapter\n-+      ATTRIBUTE id\n-+        TEXT\n-+          content=chapter2\n-+\n-diff --git a/test/XPath/xptr/vidbase b/test/XPath/xptr/vidbase\n-index b1463830570a..884b1065d7fd 100644\n---- a/test/XPath/xptr/vidbase\n-+++ b/test/XPath/xptr/vidbase\n-@@ -1,2 +1,3 @@\n- xpointer(id('chapter1')/p)\n- xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2]))\n-+xpointer(range-to(id('chapter2')))\n-diff --git a/xpath.c b/xpath.c\n-index d992841ef0c2..5a01b1b399a2 100644\n---- a/xpath.c\n-+++ b/xpath.c\n-@@ -10691,13 +10691,18 @@ xmlXPathCompPathExpr(xmlXPathParserContextPtr ctxt) {\n- \t\t    lc = 1;\n- \t\t    break;\n- \t\t} else if ((NXT(len) == '(')) {\n--\t\t    /* Note Type or Function */\n-+\t\t    /* Node Type or Function */\n- \t\t    if (xmlXPathIsNodeType(name)) {\n- #ifdef DEBUG_STEP\n- \t\t        xmlGenericError(xmlGenericErrorContext,\n- \t\t\t\t\"PathExpr: Type search\\n\");\n- #endif\n- \t\t\tlc = 1;\n-+#ifdef LIBXML_XPTR_ENABLED\n-+                    } else if (ctxt->xptr &&\n-+                               xmlStrEqual(name, BAD_CAST \"range-to\")) {\n-+                        lc = 1;\n-+#endif\n- \t\t    } else {\n- #ifdef DEBUG_STEP\n- \t\t        xmlGenericError(xmlGenericErrorContext,\n-diff --git a/xpointer.c b/xpointer.c\n-index 676c5105837a..d74174a318f1 100644\n---- a/xpointer.c\n-+++ b/xpointer.c\n-@@ -1332,8 +1332,6 @@ xmlXPtrNewContext(xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin) {\n-     ret->here = here;\n-     ret->origin = origin;\n- \n--    xmlXPathRegisterFunc(ret, (xmlChar *)\"range-to\",\n--\t                 xmlXPtrRangeToFunction);\n-     xmlXPathRegisterFunc(ret, (xmlChar *)\"range\",\n- \t                 xmlXPtrRangeFunction);\n-     xmlXPathRegisterFunc(ret, (xmlChar *)\"range-inside\",\n-@@ -2243,76 +2241,14 @@ xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) {\n-  * @nargs:  the number of args\n-  *\n-  * Implement the range-to() XPointer function\n-+ *\n-+ * Obsolete. range-to is not a real function but a special type of location\n-+ * step which is handled in xpath.c.\n-  */\n- void\n--xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) {\n--    xmlXPathObjectPtr range;\n--    const xmlChar *cur;\n--    xmlXPathObjectPtr res, obj;\n--    xmlXPathObjectPtr tmp;\n--    xmlLocationSetPtr newset = NULL;\n--    xmlNodeSetPtr oldset;\n--    int i;\n--\n--    if (ctxt == NULL) return;\n--    CHECK_ARITY(1);\n--    /*\n--     * Save the expression pointer since we will have to evaluate\n--     * it multiple times. Initialize the new set.\n--     */\n--    CHECK_TYPE(XPATH_NODESET);\n--    obj = valuePop(ctxt);\n--    oldset = obj->nodesetval;\n--    ctxt->context->node = NULL;\n--\n--    cur = ctxt->cur;\n--    newset = xmlXPtrLocationSetCreate(NULL);\n--\n--    for (i = 0; i < oldset->nodeNr; i++) {\n--\tctxt->cur = cur;\n--\n--\t/*\n--\t * Run the evaluation with a node list made of a single item\n--\t * in the nodeset.\n--\t */\n--\tctxt->context->node = oldset->nodeTab[i];\n--\ttmp = xmlXPathNewNodeSet(ctxt->context->node);\n--\tvaluePush(ctxt, tmp);\n--\n--\txmlXPathEvalExpr(ctxt);\n--\tCHECK_ERROR;\n--\n--\t/*\n--\t * The result of the evaluation need to be tested to\n--\t * decided whether the filter succeeded or not\n--\t */\n--\tres = valuePop(ctxt);\n--\trange = xmlXPtrNewRangeNodeObject(oldset->nodeTab[i], res);\n--\tif (range != NULL) {\n--\t    xmlXPtrLocationSetAdd(newset, range);\n--\t}\n--\n--\t/*\n--\t * Cleanup\n--\t */\n--\tif (res != NULL)\n--\t    xmlXPathFreeObject(res);\n--\tif (ctxt->value == tmp) {\n--\t    res = valuePop(ctxt);\n--\t    xmlXPathFreeObject(res);\n--\t}\n--\n--\tctxt->context->node = NULL;\n--    }\n--\n--    /*\n--     * The result is used as the new evaluation set.\n--     */\n--    xmlXPathFreeObject(obj);\n--    ctxt->context->node = NULL;\n--    ctxt->context->contextSize = -1;\n--    ctxt->context->proximityPosition = -1;\n--    valuePush(ctxt, xmlXPtrWrapLocationSet(newset));\n-+xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt,\n-+                       int nargs ATTRIBUTE_UNUSED) {\n-+    XP_ERROR(XPATH_EXPR_ERROR);\n- }\n- \n- /**\n--- \n-2.10.2\n-\ndiff --git a/package/libxml2/0002-Disallow-namespace-nodes-in-XPointer-ranges.patch b/package/libxml2/0002-Disallow-namespace-nodes-in-XPointer-ranges.patch\ndeleted file mode 100644\nindex 45c1a07ca..000000000\n--- a/package/libxml2/0002-Disallow-namespace-nodes-in-XPointer-ranges.patch\n+++ /dev/null\n@@ -1,253 +0,0 @@\n-From c1d1f7121194036608bf555f08d3062a36fd344b Mon Sep 17 00:00:00 2001\n-From: Nick Wellnhofer <wellnhofer@aevum.de>\n-Date: Tue, 28 Jun 2016 18:34:52 +0200\n-Subject: [PATCH] Disallow namespace nodes in XPointer ranges\n-\n-Namespace nodes must be copied to avoid use-after-free errors.\n-But they don't necessarily have a physical representation in a\n-document, so simply disallow them in XPointer ranges.\n-\n-Found with afl-fuzz.\n-\n-Fixes CVE-2016-4658.\n-\n-Signed-off-by: Baruch Siach <baruch@tkos.co.il>\n----\n-Patch status: upstream commit c1d1f712119403\n-\n- xpointer.c | 149 +++++++++++++++++++++++--------------------------------------\n- 1 file changed, 56 insertions(+), 93 deletions(-)\n-\n-diff --git a/xpointer.c b/xpointer.c\n-index a7b03fbdae16..694d120e2e0b 100644\n---- a/xpointer.c\n-+++ b/xpointer.c\n-@@ -320,6 +320,45 @@ xmlXPtrRangesEqual(xmlXPathObjectPtr range1, xmlXPathObjectPtr range2) {\n- }\n- \n- /**\n-+ * xmlXPtrNewRangeInternal:\n-+ * @start:  the starting node\n-+ * @startindex:  the start index\n-+ * @end:  the ending point\n-+ * @endindex:  the ending index\n-+ *\n-+ * Internal function to create a new xmlXPathObjectPtr of type range\n-+ *\n-+ * Returns the newly created object.\n-+ */\n-+static xmlXPathObjectPtr\n-+xmlXPtrNewRangeInternal(xmlNodePtr start, int startindex,\n-+                        xmlNodePtr end, int endindex) {\n-+    xmlXPathObjectPtr ret;\n-+\n-+    /*\n-+     * Namespace nodes must be copied (see xmlXPathNodeSetDupNs).\n-+     * Disallow them for now.\n-+     */\n-+    if ((start != NULL) && (start->type == XML_NAMESPACE_DECL))\n-+\treturn(NULL);\n-+    if ((end != NULL) && (end->type == XML_NAMESPACE_DECL))\n-+\treturn(NULL);\n-+\n-+    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n-+    if (ret == NULL) {\n-+        xmlXPtrErrMemory(\"allocating range\");\n-+\treturn(NULL);\n-+    }\n-+    memset(ret, 0, sizeof(xmlXPathObject));\n-+    ret->type = XPATH_RANGE;\n-+    ret->user = start;\n-+    ret->index = startindex;\n-+    ret->user2 = end;\n-+    ret->index2 = endindex;\n-+    return(ret);\n-+}\n-+\n-+/**\n-  * xmlXPtrNewRange:\n-  * @start:  the starting node\n-  * @startindex:  the start index\n-@@ -344,17 +383,7 @@ xmlXPtrNewRange(xmlNodePtr start, int startindex,\n-     if (endindex < 0)\n- \treturn(NULL);\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start;\n--    ret->index = startindex;\n--    ret->user2 = end;\n--    ret->index2 = endindex;\n-+    ret = xmlXPtrNewRangeInternal(start, startindex, end, endindex);\n-     xmlXPtrRangeCheckOrder(ret);\n-     return(ret);\n- }\n-@@ -381,17 +410,8 @@ xmlXPtrNewRangePoints(xmlXPathObjectPtr start, xmlXPathObjectPtr end) {\n-     if (end->type != XPATH_POINT)\n- \treturn(NULL);\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start->user;\n--    ret->index = start->index;\n--    ret->user2 = end->user;\n--    ret->index2 = end->index;\n-+    ret = xmlXPtrNewRangeInternal(start->user, start->index, end->user,\n-+                                  end->index);\n-     xmlXPtrRangeCheckOrder(ret);\n-     return(ret);\n- }\n-@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(xmlXPathObjectPtr start, xmlNodePtr end) {\n-     if (start->type != XPATH_POINT)\n- \treturn(NULL);\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start->user;\n--    ret->index = start->index;\n--    ret->user2 = end;\n--    ret->index2 = -1;\n-+    ret = xmlXPtrNewRangeInternal(start->user, start->index, end, -1);\n-     xmlXPtrRangeCheckOrder(ret);\n-     return(ret);\n- }\n-@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(xmlNodePtr start, xmlXPathObjectPtr end) {\n-     if (end->type != XPATH_POINT)\n- \treturn(NULL);\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start;\n--    ret->index = -1;\n--    ret->user2 = end->user;\n--    ret->index2 = end->index;\n-+    ret = xmlXPtrNewRangeInternal(start, -1, end->user, end->index);\n-     xmlXPtrRangeCheckOrder(ret);\n-     return(ret);\n- }\n-@@ -486,17 +486,7 @@ xmlXPtrNewRangeNodes(xmlNodePtr start, xmlNodePtr end) {\n-     if (end == NULL)\n- \treturn(NULL);\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start;\n--    ret->index = -1;\n--    ret->user2 = end;\n--    ret->index2 = -1;\n-+    ret = xmlXPtrNewRangeInternal(start, -1, end, -1);\n-     xmlXPtrRangeCheckOrder(ret);\n-     return(ret);\n- }\n-@@ -516,17 +506,7 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {\n-     if (start == NULL)\n- \treturn(NULL);\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start;\n--    ret->index = -1;\n--    ret->user2 = NULL;\n--    ret->index2 = -1;\n-+    ret = xmlXPtrNewRangeInternal(start, -1, NULL, -1);\n-     return(ret);\n- }\n- \n-@@ -541,6 +521,8 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {\n-  */\n- xmlXPathObjectPtr\n- xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {\n-+    xmlNodePtr endNode;\n-+    int endIndex;\n-     xmlXPathObjectPtr ret;\n- \n-     if (start == NULL)\n-@@ -549,7 +531,12 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {\n- \treturn(NULL);\n-     switch (end->type) {\n- \tcase XPATH_POINT:\n-+\t    endNode = end->user;\n-+\t    endIndex = end->index;\n-+\t    break;\n- \tcase XPATH_RANGE:\n-+\t    endNode = end->user2;\n-+\t    endIndex = end->index2;\n- \t    break;\n- \tcase XPATH_NODESET:\n- \t    /*\n-@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {\n- \t     */\n- \t    if (end->nodesetval->nodeNr <= 0)\n- \t\treturn(NULL);\n-+\t    endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];\n-+\t    endIndex = -1;\n- \t    break;\n- \tdefault:\n- \t    /* TODO */\n- \t    return(NULL);\n-     }\n- \n--    ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));\n--    if (ret == NULL) {\n--        xmlXPtrErrMemory(\"allocating range\");\n--\treturn(NULL);\n--    }\n--    memset(ret, 0 , (size_t) sizeof(xmlXPathObject));\n--    ret->type = XPATH_RANGE;\n--    ret->user = start;\n--    ret->index = -1;\n--    switch (end->type) {\n--\tcase XPATH_POINT:\n--\t    ret->user2 = end->user;\n--\t    ret->index2 = end->index;\n--\t    break;\n--\tcase XPATH_RANGE:\n--\t    ret->user2 = end->user2;\n--\t    ret->index2 = end->index2;\n--\t    break;\n--\tcase XPATH_NODESET: {\n--\t    ret->user2 = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];\n--\t    ret->index2 = -1;\n--\t    break;\n--\t}\n--\tdefault:\n--\t    STRANGE\n--\t    return(NULL);\n--    }\n-+    ret = xmlXPtrNewRangeInternal(start, -1, endNode, endIndex);\n-     xmlXPtrRangeCheckOrder(ret);\n-     return(ret);\n- }\n--- \n-2.10.2\n-\ndiff --git a/package/libxml2/libxml2.hash b/package/libxml2/libxml2.hash\nindex 098121e11..7f9e7dbd3 100644\n--- a/package/libxml2/libxml2.hash\n+++ b/package/libxml2/libxml2.hash\n@@ -1,2 +1,2 @@\n # Locally calculated after checking pgp signature\n-sha256\tffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c\tlibxml2-2.9.4.tar.gz\n+sha256\t4031c1ecee9ce7ba4f313e91ef6284164885cdb69937a123f6a83bb6a72dcd38\tlibxml2-2.9.5.tar.gz\ndiff --git a/package/libxml2/libxml2.mk b/package/libxml2/libxml2.mk\nindex 7073169fd..1b870c4cb 100644\n--- a/package/libxml2/libxml2.mk\n+++ b/package/libxml2/libxml2.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-LIBXML2_VERSION = 2.9.4\n+LIBXML2_VERSION = 2.9.5\n LIBXML2_SITE = ftp://xmlsoft.org/libxml2\n LIBXML2_INSTALL_STAGING = YES\n LIBXML2_LICENSE = MIT\n",
    "prefixes": [
        "1/1"
    ]
}