Fix buffer sizes in xattr_ext.c
This commit is contained in:
parent
fbf8ffce43
commit
c91be88e6d
14
xattr_ext.c
14
xattr_ext.c
|
@ -22,15 +22,15 @@
|
||||||
char*
|
char*
|
||||||
get_xattr(const char* path, const char* attr, int* error_code)
|
get_xattr(const char* path, const char* attr, int* error_code)
|
||||||
{
|
{
|
||||||
ssize_t value_length = getxattr(path, attr, NULL, 0);
|
ssize_t value_size = getxattr(path, attr, NULL, 0);
|
||||||
if (value_length == -1) {
|
if (value_size == -1) {
|
||||||
*error_code = errno;
|
*error_code = errno;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* value = (char*) malloc(value_length);
|
char* value = (char*) malloc(value_size + 1);
|
||||||
ssize_t new_length = getxattr(path, attr, value, value_length);
|
ssize_t new_size = getxattr(path, attr, value, value_size + 1);
|
||||||
*error_code = (new_length == -1) ? errno : 0;
|
*error_code = (new_size == -1) ? errno : 0;
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -55,8 +55,8 @@ list_xattr(const char* path, ssize_t* size, int* error_code)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* value = (char*) malloc(value_size);
|
char* value = (char*) malloc(value_size + 1);
|
||||||
*size = llistxattr(path, value, value_size);
|
*size = llistxattr(path, value, value_size + 1);
|
||||||
*error_code = (*size == -1) ? errno : 0;
|
*error_code = (*size == -1) ? errno : 0;
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
Ŝarĝante…
Reference in New Issue