From 44bbcae4f327e6d156e935a2189d254c1f3f60b1 Mon Sep 17 00:00:00 2001 From: Jeriko One Date: Mon, 30 Oct 2017 20:58:07 -0700 Subject: [PATCH] Ensure name in receive_xattr is NULL terminated --- xattrs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xattrs.c b/xattrs.c index 68305d75..ff78bd32 100644 --- a/xattrs.c +++ b/xattrs.c @@ -812,7 +812,7 @@ void receive_xattr(int f, struct file_struct *file) for (num = 1; num <= count; num++) { char *ptr, *name; rsync_xa *rxa; - size_t name_len = read_varint(f); + size_t name_len = read_varint(f) + 1; /* +1 for trailing '\0' */ size_t datum_len = read_varint(f); size_t dget_len = datum_len > MAX_FULL_DATUM ? 1 + MAX_DIGEST_LEN : datum_len; size_t extra_len = MIGHT_NEED_RPRE ? RPRE_LEN : 0; @@ -823,7 +823,7 @@ void receive_xattr(int f, struct file_struct *file) if (!ptr) out_of_memory("receive_xattr"); name = ptr + dget_len + extra_len; - read_buf(f, name, name_len); + read_sbuf(f, name, name_len - 1); if (dget_len == datum_len) read_buf(f, ptr, dget_len); else { -- 2.13.6