From 965b83f9cc287ca36f5a4152c2ac39007c5bc6d8 Mon Sep 17 00:00:00 2001 From: "Andrew J. Schorr" Date: Tue, 26 Sep 2006 15:30:43 +0000 Subject: [snmp] Fix asn_build calls to pass correct variable sizes (fixes 64-bit issues) 2006-09-26 Pierre-Yves Ritschard * smux.c: (smux_open,smux_trap,smux_register) Fix various asn_build_* calls to pass the proper length in the final argument: use sizeof() instead of sizeof(), since there were several inconsistencies between the actual variable type and the size that was passed. This should fix some problems on 64-bit architectures where sizeof(int) != sizeof(long). --- lib/ChangeLog | 10 ++++++++++ lib/smux.c | 14 +++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/ChangeLog b/lib/ChangeLog index 01f45ba5..00ba44e0 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,13 @@ +2006-09-26 Pierre-Yves Ritschard + + * smux.c: (smux_open,smux_trap,smux_register) Fix various + asn_build_* calls to pass the proper length in the final + argument: use sizeof() instead of sizeof(), + since there were several inconsistencies between the actual + variable type and the size that was passed. This should + fix some problems on 64-bit architectures where sizeof(int) + != sizeof(long). + 2006-08-25 Paul Jakma * thread.c: (general) Add support for monotonic clock, it may still diff --git a/lib/smux.c b/lib/smux.c index c9b7a880..1bec1209 100644 --- a/lib/smux.c +++ b/lib/smux.c @@ -963,7 +963,7 @@ smux_open (int sock) version = 0; ptr = asn_build_int (ptr, &len, (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &version, sizeof (u_long)); + &version, sizeof (version)); /* SMUX connection oid. */ ptr = asn_build_objid (ptr, &len, @@ -1026,25 +1026,25 @@ smux_trap (oid *name, size_t namelen, ptr = asn_build_string (ptr, &len, (u_char) (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_IPADDRESS), - (u_char *)&addr, sizeof (struct in_addr)); + (u_char *)&addr, sizeof (addr)); /* Generic trap integer. */ val = SNMP_TRAP_ENTERPRISESPECIFIC; ptr = asn_build_int (ptr, &len, (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &val, sizeof (int)); + &val, sizeof (val)); /* Specific trap integer. */ val = sptrap; ptr = asn_build_int (ptr, &len, (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &val, sizeof (int)); + &val, sizeof (val)); /* Timeticks timestamp. */ val = 0; ptr = asn_build_unsigned_int (ptr, &len, (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_TIMETICKS), - &val, sizeof (int)); + &val, sizeof (val)); /* Variables. */ h1 = ptr; @@ -1148,13 +1148,13 @@ smux_register (int sock) priority = -1; ptr = asn_build_int (ptr, &len, (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &priority, sizeof (u_long)); + &priority, sizeof (priority)); /* Operation. */ operation = 2; /* Register R/W */ ptr = asn_build_int (ptr, &len, (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - &operation, sizeof (u_long)); + &operation, sizeof (operation)); if (debug_smux) { -- cgit v1.2.1