diff -Naur net-snmp-5.3.1/perl/OID/OID.xs net-snmp-5.3.1.oden/perl/OID/OID.xs --- net-snmp-5.3.1/perl/OID/OID.xs 2005-09-09 12:09:31.000000000 +0200 +++ net-snmp-5.3.1.oden/perl/OID/OID.xs 2006-08-10 12:28:40.000000000 +0200 @@ -178,16 +178,19 @@ nso_newptr(initstring) char *initstring CODE: + size_t len; 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)) { + 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 diff -Naur net-snmp-5.3.1/perl/SNMP/SNMP.xs net-snmp-5.3.1.oden/perl/SNMP/SNMP.xs --- net-snmp-5.3.1/perl/SNMP/SNMP.xs 2006-05-26 18:59:15.000000000 +0200 +++ net-snmp-5.3.1.oden/perl/SNMP/SNMP.xs 2006-08-10 12:21:26.000000000 +0200 @@ -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]; @@ -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; @@ -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; diff -Naur net-snmp-5.3.1/snmplib/scapi.c net-snmp-5.3.1.oden/snmplib/scapi.c --- net-snmp-5.3.1/snmplib/scapi.c 2006-01-30 13:08:15.000000000 +0100 +++ net-snmp-5.3.1.oden/snmplib/scapi.c 2006-08-10 12:19:07.000000000 +0200 @@ -271,8 +271,10 @@ int properlength; u_char buf[SNMP_MAXBUF_SMALL]; -#if defined(USE_OPENSSL) || defined(USE_PKCS) - size_t buf_len = sizeof(buf); +#ifdef USE_OPENSSL + unsigned int buf_len = sizeof(buf); +#elif defined(USE_PKCS) + size_t buf_len = sizeof(buf); #endif DEBUGTRACE;