projects
/
rrq
/
fuse_xattrs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bugfix: binary_storage: check before writing a key with an empty value. Added test.
[rrq/fuse_xattrs.git]
/
binary_storage.c
diff --git
a/binary_storage.c
b/binary_storage.c
index e3d620218cfb3927c8267cf98f2c3246d86497d5..5e8743619744b6cfbf4c787cef51f545241f9509 100644
(file)
--- a/
binary_storage.c
+++ b/
binary_storage.c
@@
-197,7
+197,7
@@
int __write_to_file(FILE *file, const char *name, const char *value, const size_
#ifdef DEBUG
char *sanitized_value = sanitize_value(value, value_size);
#ifdef DEBUG
char *sanitized_value = sanitize_value(value, value_size);
- debug_print("name=
%s sanitized_value=%s value_size=%zu\n", nam
e, sanitized_value, value_size);
+ debug_print("name=
'%s' name_size=%zu sanitized_value='%s' value_size=%zu\n", name, name_siz
e, sanitized_value, value_size);
free(sanitized_value);
#endif
free(sanitized_value);
#endif
@@
-213,8
+213,11
@@
int __write_to_file(FILE *file, const char *name, const char *value, const size_
if (fwrite(&value_size, sizeof(size_t), 1, file) != 1) {
return -1;
}
if (fwrite(&value_size, sizeof(size_t), 1, file) != 1) {
return -1;
}
- if (fwrite(value, value_size, 1, file) != 1) {
- return -1;
+ // write value content only if we have something to write.
+ if (value_size > 0) {
+ if (fwrite(value, value_size, 1, file) != 1) {
+ return -1;
+ }
}
return 0;
}
return 0;