nlattr: do not assume that SK_MEMINFO_VARS is constant
SK_MEMINFO_VARS changes over time (as it was in Linux commit v4.7-rc1~154^2~354^2~4, for example), so we cannot use it for sanity checks. * nlattr.c (print_meminfo): Remove. (decode_nla_meminfo): Use generic print_uint32_array_member element printer callback. * tests/nlattr_inet_diag_msg.c (main): Update expected output.
This commit is contained in:
parent
4245bdfe41
commit
0f1cf622ba
20
nlattr.c
20
nlattr.c
@ -178,24 +178,6 @@ decode_nla_strn(struct tcb *const tcp,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
print_meminfo(struct tcb *const tcp,
|
||||
void *const elem_buf,
|
||||
const size_t elem_size,
|
||||
void *const opaque_data)
|
||||
{
|
||||
unsigned int *const count = opaque_data;
|
||||
|
||||
if ((*count)++ >= SK_MEMINFO_VARS) {
|
||||
tprints("...");
|
||||
return false;
|
||||
}
|
||||
|
||||
tprintf("%" PRIu32, *(uint32_t *) elem_buf);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
decode_nla_meminfo(struct tcb *const tcp,
|
||||
const kernel_ulong_t addr,
|
||||
@ -210,7 +192,7 @@ decode_nla_meminfo(struct tcb *const tcp,
|
||||
|
||||
unsigned int count = 0;
|
||||
print_array(tcp, addr, nmemb, &mem, sizeof(mem),
|
||||
umoven_or_printaddr, print_meminfo, &count);
|
||||
umoven_or_printaddr, print_uint32_array_member, &count);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -172,14 +172,9 @@ main(void)
|
||||
|
||||
memcpy(bigmem, pattern, sizeof(bigmem));
|
||||
|
||||
TEST_NLATTR(fd, nlh0, hdrlen, init_inet_diag_msg, print_inet_diag_msg,
|
||||
INET_DIAG_SKMEMINFO, sizeof(bigmem), bigmem, sizeof(bigmem),
|
||||
size_t i;
|
||||
for (i = 0; i < SK_MEMINFO_VARS; ++i) {
|
||||
printf(i ? ", " : "[");
|
||||
print_uint(&bigmem[i]);
|
||||
}
|
||||
printf(", ...]"));
|
||||
TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
|
||||
init_inet_diag_msg, print_inet_diag_msg,
|
||||
INET_DIAG_SKMEMINFO, pattern, bigmem, print_uint);
|
||||
|
||||
TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
|
||||
init_inet_diag_msg, print_inet_diag_msg,
|
||||
|
Loading…
x
Reference in New Issue
Block a user