diff options
author | default <nobody@localhost> | 2023-06-18 20:29:50 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2023-06-18 20:29:50 +0200 |
commit | b331f362bec4206bebef145c8ec09d2890e8a597 (patch) | |
tree | 1f1957553d556ae8f3a830ae477e939f47a0f7b5 /data.c | |
parent | 51ef3473342f1e77630e89372f16680e9cfe9fca (diff) |
Improved checks to _object_fn_by_md5().
Diffstat (limited to 'data.c')
-rw-r--r-- | data.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -546,6 +546,7 @@ xs_list *index_list_desc(const char *fn, int skip, int show) static xs_str *_object_fn_by_md5(const char *md5, const char *func) { xs *bfn = xs_fmt("%s/object/%c%c", srv_basedir, md5[0], md5[1]); + xs *ret = NULL; int ok = 1; /* an object deleted from an index; fail but don't bark */ @@ -557,14 +558,14 @@ static xs_str *_object_fn_by_md5(const char *md5, const char *func) ok = 0; } - if (ok) + if (ok) { mkdirx(bfn); - else { - xs_free(bfn); - bfn = xs_fmt("%s/object/invalid", srv_basedir); + ret = xs_fmt("%s/%s.json", bfn, md5); } + else + ret = xs_fmt("%s/object/invalid/invalid.json", srv_basedir); - return xs_fmt("%s/%s.json", bfn, md5); + return ret; } |