libhfuzz: smaller fixes
diff --git a/libhfuzz/memorycmp.c b/libhfuzz/memorycmp.c
index c8c4e79..855e695 100644
--- a/libhfuzz/memorycmp.c
+++ b/libhfuzz/memorycmp.c
@@ -279,8 +279,10 @@
     size_t slen = __builtin_strlen(src);
     size_t len  = slen < n ? slen : n;
 
-    instrumentUpdateCmpMap(addr, util_Log2(len));
-    instrumentAddConstMem(src, len, /* check_if_ro= */ true);
+    if (len > 0) {
+        instrumentUpdateCmpMap(addr, util_Log2(len));
+        instrumentAddConstMem(src, len, /* check_if_ro= */ true);
+    }
 
     __builtin_memcpy(dest + dlen, src, len);
     dest[dlen + len] = '\0';
diff --git a/libhfuzz/persistent.c b/libhfuzz/persistent.c
index 7460cfa..d9dcf29 100644
--- a/libhfuzz/persistent.c
+++ b/libhfuzz/persistent.c
@@ -91,11 +91,17 @@
     if (len < 0) {
         LOG_E("Couldn't read data from stdin: %s", strerror(errno));
         free(buf);
+        if (in_fd != STDIN_FILENO) {
+            close(in_fd);
+        }
         return -1;
     }
 
     HonggfuzzRunOneInput(buf, len);
     free(buf);
+    if (in_fd != STDIN_FILENO) {
+        close(in_fd);
+    }
     return 0;
 }