Commit f0bdc562 authored by Adam Wujek's avatar Adam Wujek 💬

userspace/tools: check pointer follow result in wrs_dump_shmem

Print error when wrs_shm_follow is not successful in wrs_dump_shmem.
Avoid segfaults.
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent e168b7f8
......@@ -238,6 +238,11 @@ int dump_hal_mem(struct wrs_shm_head *head)
n = h->nports;
p = wrs_shm_follow(head, h->ports);
if (!p) {
fprintf(stderr, "dump hal: cannot follow pointer to *ports\n");
return -1;
}
for (i = 0; i < n; i++, p++) {
printf("dump port %i\n", i);
dump_many_fields(p, hal_port_info, ARRAY_SIZE(hal_port_info));
......@@ -300,6 +305,11 @@ int dump_rtu_mem(struct wrs_shm_head *head)
rtu_filters = wrs_shm_follow(head, rtu_h->filters);
rtu_vlans = wrs_shm_follow(head, rtu_h->vlans);
if ((!rtu_filters) || (!rtu_vlans)) {
fprintf(stderr, "dump rtu: cannot follow pointer in shm\n");
return -1;
}
for (i = 0; i < HTAB_ENTRIES; i++) {
for (j = 0; j < RTU_BUCKETS; j++) {
printf("dump htab[%d][%d]\n", i, j);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment