feat: (vfs) write_page and read_page file operations
[lunaix-os.git] / lunaix-os / kernel / fs / iso9660 / directory.c
index 71244a9afe32e0d806f3d10c62e260b939cfdcd1..816f6eb6b398e083181267ca162cda7e59303047 100644 (file)
@@ -21,8 +21,10 @@ iso9660_fill_drecache(struct iso_drecache* cache, struct iso_drecord* drec)
     u32_t l = drec->name.len;
     while (l < (u32_t)-1 && drec->name.content[l--] != ';')
         ;
-    l = (l + 1) ? l : drec->name.len;
-    l = MIN(l, ISO9660_IDLEN);
+    l++;
+    l = l ? l : drec->name.len;
+    l = MIN(l, ISO9660_IDLEN - 1);
+
     strncpy(cache->name_val, drec->name.content, l);
     cache->name = HSTR(cache->name_val, l);
     hstr_rehash(&cache->name, HSTR_FULL_HASH);