aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2016-09-29 15:57:55 +0300
committerDmitry V. Levin <ldv@altlinux.org>2016-10-02 19:19:15 +0000
commitf3228d32681b96b8e39af9c71af46e162f2f0b83 (patch)
tree48de78a8364e3126d04b7532592a7f3146fb4227
parente8f36ec0c56744390751a7a7b7da4c6afdaad31b (diff)
downloadstrace-f3228d32681b96b8e39af9c71af46e162f2f0b83.tar.gz
io: handle data_size of -1 as unlimited data in print_iovec
Otherwise it can be depleted and print_iovec starts printing empty strings. * io.c (print_iovec): Interpret c->data_size of -1 as unlimited data and do not decrease it in this case.
-rw-r--r--io.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/io.c b/io.c
index 907f9d24..8a93cb89 100644
--- a/io.c
+++ b/io.c
@@ -85,13 +85,15 @@ print_iovec(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
case IOV_DECODE_STR:
if (len > c->data_size)
len = c->data_size;
- c->data_size -= len;
+ if (c->data_size != (unsigned long) -1L)
+ c->data_size -= len;
printstr(tcp, iov[0], len);
break;
case IOV_DECODE_NETLINK:
if (len > c->data_size)
len = c->data_size;
- c->data_size -= len;
+ if (c->data_size != (unsigned long) -1L)
+ c->data_size -= len;
decode_netlink(tcp, iov[0], iov[1]);
break;
default: