]> git.ipfire.org Git - thirdparty/lldpd.git/blobdiff - tests/check_snmp.c
check: enforce correct alignment during SNMP tests
[thirdparty/lldpd.git] / tests / check_snmp.c
index c82ad15c2cafba971da67f2c33bae8b96ea8e9ca..f05cdce3b5dd3d379d751371f27a1e2ce6638811 100644 (file)
@@ -881,6 +881,7 @@ snmp_compare(struct tree_node *n,
             u_char *result, size_t varlen,
             oid *target, size_t targetlen, char *repr)
 {
+       unsigned long int value;
        fail_unless((targetlen == sizeof(lldp_oid)/sizeof(oid) + n->namelen) &&
                    !memcmp(target, lldp_oid, sizeof(lldp_oid)) &&
                    !memcmp(target + sizeof(lldp_oid)/sizeof(oid),
@@ -896,12 +897,12 @@ snmp_compare(struct tree_node *n,
                fail_unless(varlen == sizeof(unsigned long int),
                            "Inappropriate length for integer type for OID %s",
                            repr);
-               fail_unless(n->value.integer ==
-                           *(unsigned long int *)result,
+               memcpy(&value, result, sizeof(value));
+               fail_unless(n->value.integer == value,
                            "For OID %s, expected value %u but got %u instead",
                            repr,
                            n->value.integer,
-                           *(unsigned long int *)result);
+                           value);
                break;
        default:
                fail_unless(((n->value.string.len == varlen) &&