diff options
author | christos <christos> | 2006-09-15 20:13:53 +0000 |
---|---|---|
committer | christos <christos> | 2006-09-15 20:13:53 +0000 |
commit | ca19508fd906e893bb1334cf64afff42a6d97e5f (patch) | |
tree | eeb58c3a821c689cfe74fcc536bd91aeadd2a779 /net/net-snmp | |
parent | 4ff76b1a70b99b73a3e0408de766f0f59d297be1 (diff) | |
download | pkgsrc-ca19508fd906e893bb1334cf64afff42a6d97e5f.tar.gz |
Fix a crapload of 64 bit inconsistencies (int <-> ptr, int * <-> size_t *)
This now has a chance to work on sparc64.
Diffstat (limited to 'net/net-snmp')
-rw-r--r-- | net/net-snmp/distinfo | 3 | ||||
-rw-r--r-- | net/net-snmp/patches/patch-ea | 454 |
2 files changed, 456 insertions, 1 deletions
diff --git a/net/net-snmp/distinfo b/net/net-snmp/distinfo index 057e4b740f0..fd5ce7d8625 100644 --- a/net/net-snmp/distinfo +++ b/net/net-snmp/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.28 2006/08/22 14:06:32 joerg Exp $ +$NetBSD: distinfo,v 1.29 2006/09/15 20:13:53 christos Exp $ SHA1 (net-snmp-5.3.1.tar.gz) = 8ddb5122769814f04a7d3d352dcc640df7c89d41 RMD160 (net-snmp-5.3.1.tar.gz) = 7bcdd213fb2517d0927b030deab5146522b58b3d @@ -32,4 +32,5 @@ SHA1 (patch-dq) = 619d94d9937098b684ee8d0f1a3a92dfdff2155c SHA1 (patch-dr) = ab75e5cf3448d9c0520b6e7d2c68adfbf3ab639b SHA1 (patch-ds) = e0319c5f63ed56ab8a9ddc96759f16fd43395096 SHA1 (patch-dt) = 0cbf8245fbb5475dc864acc4e7c1490095377a6e +SHA1 (patch-ea) = dfd754c3b7aaa1c86ca1b040e7e87b6f7898f5e1 SHA1 (patch-mib2cupdate) = d6773633c8737fe45a58e378967995e21012d21d diff --git a/net/net-snmp/patches/patch-ea b/net/net-snmp/patches/patch-ea new file mode 100644 index 00000000000..a4338fbc75b --- /dev/null +++ b/net/net-snmp/patches/patch-ea @@ -0,0 +1,454 @@ +$NetBSD: patch-ea,v 1.1 2006/09/15 20:13:55 christos Exp $ + +--- snmplib/snmp_api.c.orig 2006-03-09 17:01:14.000000000 -0500 ++++ snmplib/snmp_api.c 2006-09-15 11:59:02.723578061 -0400 +@@ -6781,7 +6781,7 @@ + } + #endif /* DISABLE_MIB_LOADING */ + atmp = inet_addr(value); +- if (atmp != (long) -1 || !strcmp(value, "255.255.255.255")) ++ if (atmp != (in_addr_t) -1 || !strcmp(value, "255.255.255.255")) + snmp_pdu_add_variable(pdu, name, name_length, ASN_IPADDRESS, + (u_char *) & atmp, sizeof(atmp)); + else +--- snmplib/md5.c.orig 2004-04-19 18:09:07.000000000 -0400 ++++ snmplib/md5.c 2006-09-15 12:00:18.530062610 -0400 +@@ -465,7 +465,7 @@ + goto update_end; + + i = len; +- if (((unsigned int) data) % sizeof(long) != 0) { ++ if (((unsigned long) data) % sizeof(int) != 0) { + /* + * this relies on the ability to use integer math and thus we + * must rely on data that aligns on 32-bit-word-boundries +--- snmplib/text_utils.c.orig 2006-03-09 15:57:35.000000000 -0500 ++++ snmplib/text_utils.c 2006-09-15 12:03:41.664878785 -0400 +@@ -461,7 +461,7 @@ + /* + * get value + */ +- switch((int)lpi->user_context) { ++ switch((int)(long)lpi->user_context) { + + case PMLP_TYPE_UNSIGNED: + tvi->value.ul = strtoul(ptr, NULL, 0); +@@ -497,7 +497,7 @@ + + default: + snmp_log(LOG_ERR,"unsupported value type %d\n", +- (int)lpi->user_context); ++ (int)(long)lpi->user_context); + break; + } + +--- snmplib/scapi.c.orig 2006-01-30 07:08:15.000000000 -0500 ++++ snmplib/scapi.c 2006-09-15 12:05:52.357854147 -0400 +@@ -272,7 +272,7 @@ + + u_char buf[SNMP_MAXBUF_SMALL]; + #if defined(USE_OPENSSL) || defined(USE_PKCS) +- size_t buf_len = sizeof(buf); ++ unsigned int buf_len = sizeof(buf); + #endif + + DEBUGTRACE; +--- snmplib/container_binary_array.c.orig 2005-12-11 14:13:15.000000000 -0500 ++++ snmplib/container_binary_array.c 2006-09-15 12:06:45.271966359 -0400 +@@ -405,7 +405,7 @@ + /* + * Insert the new entry into the data array + */ +- t->data[t->count++] = entry; ++ t->data[t->count++] = (void *)(unsigned long)entry; + t->dirty = 1; + return 0; + } +--- include/net-snmp/types.h.orig 2006-05-26 12:36:06.000000000 -0400 ++++ include/net-snmp/types.h 2006-09-15 12:14:05.096058400 -0400 +@@ -162,7 +162,7 @@ + */ + + typedef struct netsnmp_index_s { +- int len; ++ size_t len; + oid *oids; + } netsnmp_index; + +--- snmplib/snmp_logging.c.orig 2006-01-25 11:27:41.000000000 -0500 ++++ snmplib/snmp_logging.c 2006-09-15 13:26:28.786672010 -0400 +@@ -380,7 +380,7 @@ + if (facility == -1) return -1; + logh->pri_max = pri_max; + logh->token = strdup(snmp_log_syslogname(0)); +- logh->magic = (void *)facility; ++ logh->magic = (void *)(long)facility; + snmp_enable_syslog_ident(snmp_log_syslogname(0), facility); + } + break; +@@ -600,7 +600,7 @@ + continue; + if (logh->type == NETSNMP_LOGHANDLER_SYSLOG) { + snmp_disable_syslog_entry(logh); +- snmp_enable_syslog_ident(logh->token,(int)logh->magic); ++ snmp_enable_syslog_ident(logh->token,(int)(long)logh->magic); + } + else if (logh->type == NETSNMP_LOGHANDLER_FILE) { + snmp_disable_filelog_entry(logh); +@@ -1016,7 +1016,7 @@ + */ + if (!(logh->imagic)) { + const char *ident = logh->token; +- int facility = (int)logh->magic; ++ int facility = (int)(long)logh->magic; + if (!ident) + ident = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, + NETSNMP_DS_LIB_APPTYPE); +--- agent/helpers/row_merge.c.orig 2006-01-25 11:26:38.000000000 -0500 ++++ agent/helpers/row_merge.c 2006-09-15 13:29:02.792124486 -0400 +@@ -31,7 +31,7 @@ + ret = netsnmp_create_handler("row_merge", + netsnmp_row_merge_helper_handler); + if (ret) { +- ret->myvoid = (void *) prefix_len; ++ ret->myvoid = (void *)(long)prefix_len; + } + return ret; + } +@@ -165,7 +165,7 @@ + * Use the prefix length as supplied during registration, rather + * than trying to second-guess what the MIB implementer wanted. + */ +- int SKIP_OID = (int)handler->myvoid; ++ int SKIP_OID = (int)(long)handler->myvoid; + + DEBUGMSGTL(("helper:row_merge", "Got request (%d): ", SKIP_OID)); + DEBUGMSGOID(("helper:row_merge", reginfo->rootoid, reginfo->rootoid_len)); +--- agent/mibgroup/ucd-snmp/pass.c.orig 2006-09-15 13:32:02.702526885 -0400 ++++ agent/mibgroup/ucd-snmp/pass.c 2006-09-15 13:31:29.416161961 -0400 +@@ -163,6 +163,7 @@ + { + struct extensible **ppass = &passthrus, **etmp, *ptmp; + char *tcptr, *endopt; ++ long priorl; + int i, priority; + + /* +@@ -180,10 +181,12 @@ + config_perror("priority must be an integer"); + return; + } +- priority = strtol((const char*) cptr, &endopt, 0); +- if ((priority == LONG_MIN) || (priority == LONG_MAX)) { ++ priorl = strtol((const char*) cptr, &endopt, 0); ++ if ((priorl <= INT_MIN) || (priorl >= INT_MAX)) { + config_perror("priority under/overflow"); + return; ++ } else { ++ priority = (int)priorl; + } + cptr = endopt; + cptr = skip_white(cptr); +--- agent/mibgroup/ucd-snmp/pass_persist.c.orig 2005-10-03 07:52:44.000000000 -0400 ++++ agent/mibgroup/ucd-snmp/pass_persist.c 2006-09-15 13:33:19.013118652 -0400 +@@ -89,6 +89,7 @@ + { + struct extensible **ppass = &persistpassthrus, **etmp, *ptmp; + char *tcptr, *endopt; ++ long priorl; + int i, priority; + + /* +@@ -106,10 +107,12 @@ + config_perror("priority must be an integer"); + return; + } +- priority = strtol((const char*) cptr, &endopt, 0); +- if ((priority == LONG_MIN) || (priority == LONG_MAX)) { ++ priorl = strtol((const char*) cptr, &endopt, 0); ++ if ((priorl <= INT_MIN) || (priorl >= INT_MAX)) { + config_perror("priority under/overflow"); + return; ++ } else { ++ priority = (int)priorl; + } + cptr = endopt; + cptr = skip_white(cptr); +--- ./agent/mibgroup/agent/nsDebug.c.orig 2005-04-21 09:32:20.000000000 -0400 ++++ ./agent/mibgroup/agent/nsDebug.c 2006-09-15 13:34:51.994897981 -0400 +@@ -291,7 +291,7 @@ + + snmp_set_var_value(index, dbg_tokens[i].token_name, + strlen(dbg_tokens[i].token_name)); +- *loop_context = (void*)i; ++ *loop_context = (void*)(long)i; + *data_context = (void*)&dbg_tokens[i]; + return index; + } +@@ -301,7 +301,7 @@ + netsnmp_variable_list *index, + netsnmp_iterator_info *data) + { +- int i = (int)*loop_context; ++ int i = (int)(long)*loop_context; + + for (i++; i<debug_num_tokens; i++) { + /* skip excluded til mib is updated */ +@@ -313,7 +313,7 @@ + + snmp_set_var_value(index, dbg_tokens[i].token_name, + strlen(dbg_tokens[i].token_name)); +- *loop_context = (void*)i; ++ *loop_context = (void*)(long)i; + *data_context = (void*)&dbg_tokens[i]; + return index; + } +--- ./agent/mibgroup/host/hr_device.c.orig 2005-11-17 20:44:47.000000000 -0500 ++++ ./agent/mibgroup/host/hr_device.c 2006-09-15 13:35:43.824808435 -0400 +@@ -222,7 +222,7 @@ + { + int dev_idx, type; + oid *oid_p; +- char *tmp_str; ++ const char *tmp_str; + static char string[1024]; + + dev_idx = +--- ./agent/mibgroup/util_funcs.c.orig 2005-12-05 07:15:27.000000000 -0500 ++++ ./agent/mibgroup/util_funcs.c 2006-09-15 13:37:10.161316785 -0400 +@@ -237,7 +237,7 @@ + #if HAVE_EXECV + char cachefile[STRMAX]; + char cache[MAXCACHESIZE]; +- ssize_t cachebytes; ++ int cachebytes; + int cfd; + #ifdef EXCACHETIME + long curtime; +--- ./agent/mibgroup/if-mib/ifTable/ifTable_interface.c.orig 2006-02-10 17:58:26.000000000 -0500 ++++ ./agent/mibgroup/if-mib/ifTable/ifTable_interface.c 2006-09-15 13:40:07.507226461 -0400 +@@ -1409,7 +1409,7 @@ + netsnmp_assert(NULL != dl); + ++(*(int*)&dl->data); + DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_undo_setup_allocate", +- "++refcount = %d\n",(int)dl->data)); ++ "++refcount = %d\n",(int)(long)dl->data)); + } + + return rc; +@@ -1487,9 +1487,9 @@ + return; /* better to lead than double free */ + + --(*(int*)&dl->data); +- snmp_log(LOG_ERR, "--refcount at %d\n", (int)dl->data); ++ snmp_log(LOG_ERR, "--refcount at %d\n", (int)(long)dl->data); + +- if (0 == (int)dl->data) { ++ if (0 == (int)(long)dl->data) { + netsnmp_access_interface_entry_free(rowreq_ctx->undo->ifentry); + ifTable_release_data(rowreq_ctx->undo); + rowreq_ctx->undo = NULL; +--- agent/agent_registry.c.orig 2006-06-13 08:50:36.000000000 -0400 ++++ agent/agent_registry.c 2006-09-15 13:45:00.415231055 -0400 +@@ -1458,7 +1458,7 @@ + lookup_cache *lookup_cache = NULL; + netsnmp_subtree *myptr = NULL, *previous = NULL; + int cmp = 1; +- int ll_off = 0; ++ size_t ll_off = 0; + + if (subtree) { + myptr = subtree; +--- ./agent/mibgroup/utilities/iquery.c.orig 2006-04-11 07:10:16.000000000 -0400 ++++ ./agent/mibgroup/utilities/iquery.c 2006-09-15 13:46:09.604459976 -0400 +@@ -153,7 +153,7 @@ + memdup( &(ss->securityEngineID), engineID, engIDLen ); + ss->securityEngineIDLen = engIDLen; + if ( version == SNMP_VERSION_3 ) { +- memdup(&(ss->securityName), secName, strlen(secName)); ++ memdup((u_char **)&(ss->securityName), secName, strlen(secName)); + ss->securityNameLen = strlen(secName); + } else { + memdup( &(ss->community), secName, strlen(secName)); +--- perl/OID/OID.xs.orig 2005-09-09 06:09:31.000000000 -0400 ++++ perl/OID/OID.xs 2006-09-15 13:51:01.268231665 -0400 +@@ -177,17 +177,21 @@ + netsnmp_oid * + nso_newptr(initstring) + char *initstring ++ PREINIT: ++ STRLEN len; + CODE: + if (get_tree_head() == NULL) + init_mib(); + RETVAL = SNMP_MALLOC_TYPEDEF(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; + RETVAL = NULL; +- } ++ } else { ++ RETVAL->len = len; ++ } + OUTPUT: + RETVAL + +--- ./perl/SNMP/SNMP.xs.orig 2006-05-26 12:59:15.000000000 -0400 ++++ ./perl/SNMP/SNMP.xs 2006-09-15 14:11:11.883749613 -0400 +@@ -117,15 +117,15 @@ + netsnmp_variable_list*, struct tree *, + int, int)); + static int __sprint_num_objid _((char *, oid *, int)); +-static int __scan_num_objid _((char *, oid *, int *)); ++static int __scan_num_objid _((char *, oid *, size_t *)); + static int __get_type_str _((int, char *)); + static int __get_label_iid _((char *, char **, char **, int)); + static int __oid_cmp _((oid *, int, oid *, int)); + static int __tp_sprint_num_objid _((char*,SnmpMibNode *)); + static SnmpMibNode * __get_next_mib_node _((SnmpMibNode *)); + static struct tree * __oid2tp _((oid*, int, struct tree *, int*)); +-static struct tree * __tag2oid _((char *, char *, oid *, int *, int *, int)); +-static int __concat_oid_str _((oid *, int *, char *)); ++static struct tree * __tag2oid _((char *, char *, oid *, size_t *, int *, int)); ++static int __concat_oid_str _((oid *, size_t *, char *)); + static int __add_var_val_str _((netsnmp_pdu *, oid *, int, char *, + int, int)); + static int __send_sync_pdu _((netsnmp_session *, netsnmp_pdu *, +@@ -583,7 +583,7 @@ + __scan_num_objid (buf, objid, len) + char *buf; + oid *objid; +-int *len; ++size_t *len; + { + char *cp; + *len = 0; +@@ -874,14 +874,14 @@ + char * tag; + char * iid; + oid * oid_arr; +-int * oid_arr_len; ++size_t * oid_arr_len; + int * type; + int best_guess; + { + struct tree *tp = NULL; + struct tree *rtp = NULL; + oid newname[MAX_OID_LEN], *op; +- int newname_len = 0; ++ size_t newname_len = 0; + const char *cp = NULL; + char *module = NULL; + +@@ -1022,7 +1022,7 @@ + static int + __concat_oid_str(doid_arr, doid_arr_len, soid_str) + oid *doid_arr; +-int *doid_arr_len; ++size_t *doid_arr_len; + char * soid_str; + { + char soid_buf[STR_BUF_SIZE]; +@@ -1911,7 +1911,7 @@ + ** we sent in this request. Note that this is not a valid SNMP PDU, + ** but that's because a response has not yet been received. + */ +- return (netsnmp_pdu *)reqid; ++ return (netsnmp_pdu *)(long)reqid; + } + + /* This code is for synchronous mode support. +@@ -3006,7 +3006,7 @@ + netsnmp_pdu *pdu, *response; + struct tree *tp; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + char *tag_pv; + snmp_xs_cb_data *xs_cb_data; + SV **sess_ptr_sv; +@@ -3207,7 +3207,7 @@ + struct tree *tp; + int len; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + SV *tmp_sv; + int type; + char tmp_type_str[MAX_TYPE_NAME_LEN]; +@@ -3425,7 +3425,7 @@ + struct tree *tp; + int len; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + SV *tmp_sv; + int type; + char tmp_type_str[MAX_TYPE_NAME_LEN]; +@@ -3669,7 +3669,7 @@ + struct tree *tp; + int len; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + SV *tmp_sv; + int type; + char tmp_type_str[MAX_TYPE_NAME_LEN]; +@@ -3897,7 +3897,7 @@ + netsnmp_session *ss; + netsnmp_pdu *pdu = NULL; + oid oid_arr[MAX_OID_LEN]; +- int oid_arr_len; ++ size_t oid_arr_len; + SV **sess_ptr_sv; + SV **err_str_svp; + SV **err_num_svp; +@@ -4115,7 +4115,7 @@ + /* Sent okay... Return the request ID in 'pdu' as an SvIV. */ + DBPRT(1,(DBOUT "Okay, request id is %d\n", (intptr_t) pdu)); + /* XSRETURN_IV((intptr_t)pdu); */ +- XPUSHs(sv_2mortal(newSViv(pdu))); ++ XPUSHs(sv_2mortal(newSViv((intptr_t)pdu))); + XSRETURN(1); + } + +@@ -4208,7 +4208,7 @@ + netsnmp_pdu *pdu = NULL; + struct tree *tp; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + SV **sess_ptr_sv; + SV **err_str_svp; + SV **err_num_svp; +@@ -4347,7 +4347,7 @@ + netsnmp_pdu *pdu = NULL; + struct tree *tp; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + SV **sess_ptr_sv; + SV **err_str_svp; + SV **err_num_svp; +@@ -4484,7 +4484,7 @@ + netsnmp_pdu *response; + struct tree *tp; + oid *oid_arr; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + snmp_xs_cb_data *xs_cb_data; + SV **sess_ptr_sv; + SV **err_str_svp; +@@ -4715,7 +4715,7 @@ + char str_buf[STR_BUF_SIZE]; + char str_buf_temp[STR_BUF_SIZE]; + oid oid_arr[MAX_OID_LEN]; +- int oid_arr_len = MAX_OID_LEN; ++ size_t oid_arr_len = MAX_OID_LEN; + char * label; + char * iid; + int status = FAILURE; |