diff options
-rw-r--r-- | src/xcb_conn.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/xcb_conn.c b/src/xcb_conn.c index 3084c18..8f91f43 100644 --- a/src/xcb_conn.c +++ b/src/xcb_conn.c @@ -310,9 +310,11 @@ static int write_vec(xcb_connection_t *c, struct iovec **vector, int *count) int cur = (*vector)->iov_len; if(cur > n) cur = n; - (*vector)->iov_len -= cur; - (*vector)->iov_base = (char *) (*vector)->iov_base + cur; - n -= cur; + if(cur) { + (*vector)->iov_len -= cur; + (*vector)->iov_base = (char *) (*vector)->iov_base + cur; + n -= cur; + } if((*vector)->iov_len) break; } |