passthrough: optimization: don't open/close files for every operation.
[rrq/fuse_xattrs.git] / binary_storage.c
index cbe3333c57d55deeab8a7c4d51846362ba7d0282..e3d620218cfb3927c8267cf98f2c3246d86497d5 100644 (file)
@@ -43,8 +43,12 @@ void __print_on_memory_attr(struct on_memory_attr *attr)
 
 void __free_on_memory_attr(struct on_memory_attr *attr)
 {
-    free(attr->name);
-    free(attr->value);
+    if(attr->name != NULL)
+        free(attr->name);
+
+    if(attr->value != NULL)
+        free(attr->value);
+
     free(attr);
 }
 
@@ -131,6 +135,8 @@ struct on_memory_attr *__read_on_memory_attr(size_t *offset, char *buffer, size_
 {
     debug_print("offset=%zu\n", *offset);
     struct on_memory_attr *attr = malloc(sizeof(struct on_memory_attr));
+    attr->name = NULL;
+    attr->value = NULL;
 
     ////////////////////////////////
     // Read name size