summaryrefslogtreecommitdiff
path: root/net/net-snmp/patches/patch-el
blob: 7164b1a20f835d1fd89ea0be997e3a9699fa5931 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$NetBSD: patch-el,v 1.4 2013/03/17 00:15:29 gdt Exp $

--- perl/OID/OID.xs.orig	2012-10-09 22:28:58.000000000 +0000
+++ perl/OID/OID.xs
@@ -157,17 +157,22 @@ MODULE = NetSNMP::OID		PACKAGE = NetSNMP
 netsnmp_oid *
 nso_newptr(initstring)
     char *initstring
+    PREINIT:
+	STRLEN	len;
     CODE:
         if (get_tree_head() == NULL)
             netsnmp_init_mib();
         RETVAL = malloc(sizeof(netsnmp_oid));
         RETVAL->name = RETVAL->namebuf;
-        RETVAL->len = sizeof(RETVAL->namebuf)/sizeof(RETVAL->namebuf[0]);
-        if (!snmp_parse_oid(initstring, (oid *) RETVAL->name, &RETVAL->len)) {
+        len = sizeof(RETVAL->namebuf)/sizeof(RETVAL->namebuf[0]);
+        if (!snmp_parse_oid(initstring, (oid *) RETVAL->name, &len)) {
             snmp_log(LOG_ERR, "Can't parse: %s\n", initstring);
             RETVAL->len = 0;
             free(RETVAL);
             RETVAL = NULL;
+	}
+	else {
+	    RETVAL->len = len;
         }
     OUTPUT:
         RETVAL