]> granicus.if.org Git - strace/commitdiff
tests/test_nlattr.h: fix pointer calculation in TEST_NLATTR_ARRAY
authorEugene Syromyatnikov <evgsyr@gmail.com>
Thu, 10 May 2018 17:33:52 +0000 (19:33 +0200)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 23 May 2018 23:27:43 +0000 (23:27 +0000)
The old code works only when an array contains exactly two items.

* tests/test_nlattr.h (TEST_NLATTR_ARRAY): Fix pointer address
for the case of incomplete read.

tests/test_nlattr.h

index 43f467ffb6d8e75db165565c2ecf4fc57065bad5..30211a47d586dcb47daffaf54c75b39b2589a574 100644 (file)
@@ -187,7 +187,7 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type)
                        }                                               \
                        printf(", %p]",                                 \
                               RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))     \
-                               + sizeof((obj_)[0])));                  \
+                               + sizeof(obj_) - sizeof((obj_)[0])));   \
                /* sizeof(obj_) */                                      \
                TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),                 \
                        (init_msg_), (print_msg_),                      \