exFAT file system implementation library.
Free exFAT implementation.
- Copyright (C) 2010-2014 Andrew Nayenko
+ Copyright (C) 2010-2015 Andrew Nayenko
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
break;
default:
- if (entry->type & EXFAT_ENTRY_VALID)
+ if (!(entry->type & EXFAT_ENTRY_VALID))
+ break; /* deleted entry, ignore it */
+ if (!(entry->type & EXFAT_ENTRY_OPTIONAL))
{
- exfat_error("unknown entry type 0x%hhx", entry->type);
+ exfat_error("unknown entry type %#hhx", entry->type);
goto error;
}
+ /* optional entry, warn and skip */
+ exfat_warn("unknown entry type %#hhx", entry->type);
+ if (continuations == 0)
+ {
+ exfat_error("unexpected continuation");
+ goto error;
+ }
+ --continuations;
break;
}
int rc;
struct exfat_node* node;
- rc = create(ef, path, EXFAT_ATTRIB_ARCH | EXFAT_ATTRIB_DIR);
+ rc = create(ef, path, EXFAT_ATTRIB_DIR);
if (rc != 0)
return rc;
rc = exfat_lookup(ef, &node, path);