diff options
author | Andrew J. Schorr <ajschorr@alumni.princeton.edu> | 2006-09-26 15:30:43 +0000 |
---|---|---|
committer | Andrew J. Schorr <ajschorr@alumni.princeton.edu> | 2006-09-26 15:30:43 +0000 |
commit | 965b83f9cc287ca36f5a4152c2ac39007c5bc6d8 (patch) | |
tree | 1cfc447235d86ce273d37078d44da82ead4fd39d | |
parent | 08c8367197cb847eb88942e5d7273cf3352d967f (diff) |
[snmp] Fix asn_build calls to pass correct variable sizes (fixes 64-bit issues)
2006-09-26 Pierre-Yves Ritschard <pierre-yves@spootnik.org>
* smux.c: (smux_open,smux_trap,smux_register) Fix various
asn_build_* calls to pass the proper length in the final
argument: use sizeof(<variable>) instead of sizeof(<type>),
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).
-rw-r--r-- | lib/ChangeLog | 10 | ||||
-rw-r--r-- | 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 <pierre-yves@spootnik.org> + + * smux.c: (smux_open,smux_trap,smux_register) Fix various + asn_build_* calls to pass the proper length in the final + argument: use sizeof(<variable>) instead of sizeof(<type>), + 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 <paul.jakma@sun.com> * thread.c: (general) Add support for monotonic clock, it may still @@ -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) { |