Enforce trailing \0 when receiving xattr name values.
authorWayne Davison <wayned@samba.org>
Sun, 5 Nov 2017 19:33:15 +0000 (11:33 -0800)
committerWayne Davison <wayned@samba.org>
Sun, 5 Nov 2017 19:46:09 +0000 (11:46 -0800)
Fixes bug 13112.

xattrs.c

index 68305d7559b34f5cc2f196b74429b82fa6ff49dd..4867e6f5b8ad2934d43b06f3b99b7b3690a6dc7a 100644 (file)
--- a/xattrs.c
+++ b/xattrs.c
@@ -824,6 +824,10 @@ void receive_xattr(int f, struct file_struct *file)
                        out_of_memory("receive_xattr");
                name = ptr + dget_len + extra_len;
                read_buf(f, name, name_len);
+               if (name_len < 1 || name[name_len-1] != '\0') {
+                       rprintf(FERROR, "Invalid xattr name received (missing trailing \\0).\n");
+                       exit_cleanup(RERR_FILEIO);
+               }
                if (dget_len == datum_len)
                        read_buf(f, ptr, dget_len);
                else {