# HG changeset patch # User Olaf Wintermann # Date 1687686650 -7200 # Node ID 305ce525ad4ac4f537d85b0db1bc825e20299560 # Parent a41b18c67d958dbb4870e965c1e7791929d1de16 change libxattr xattr_get() to return null-terminated strings diff -r a41b18c67d95 -r 305ce525ad4a dav/libxattr.c --- a/dav/libxattr.c Sun Jun 25 11:25:59 2023 +0200 +++ b/dav/libxattr.c Sun Jun 25 11:50:50 2023 +0200 @@ -135,7 +135,7 @@ ssize_t attrlen = getxattr(path, attrname, NULL, 0); if(attrlen > 0) { free(buf); - buf = malloc(attrlen); + buf = malloc(attrlen + 1); vlen = getxattr(path, attrname, buf, attrlen); if(vlen > 0) { break; @@ -152,6 +152,7 @@ } free(attrname); + buf[vlen] = 0; *len = vlen; return buf; } @@ -238,7 +239,7 @@ return NULL; } - char *buf = malloc(attrlen); + char *buf = malloc(attrlen + 1); ssize_t vlen = getxattr(path, attr, buf, attrlen, 0, 0); if(vlen < 0) { *len = -1; @@ -246,6 +247,7 @@ return NULL; } + buf[attrlen] = 0; *len = vlen; return buf; } @@ -327,7 +329,8 @@ } size_t bufsize = (size_t)s.st_size; - char *buf = malloc(bufsize); + char *buf = malloc(bufsize + 1); + buf[bufsize] = 0; char *b = buf; size_t cur = 0; @@ -396,7 +399,6 @@ size_t arraypos = 0; char **array = malloc(LIST_ARRAY_LEN * sizeof(char*)); - char *name = buf; for(int i=0;i