aboutsummaryrefslogtreecommitdiff
path: root/index.c
diff options
context:
space:
mode:
Diffstat (limited to 'index.c')
-rw-r--r--index.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/index.c b/index.c
index 57c05d7..3430178 100644
--- a/index.c
+++ b/index.c
@@ -171,6 +171,7 @@ index_recurse(size_t size, const char *dir, int examine, size_t rootlen)
/* stat it */
node_data_t *data = malloc(sizeof(node_data_t));
+ memset(data, 0, sizeof(node_data_t));
data->name = strdup(de->d_name);
data->path = strdup(&path[rootlen]);
if (stat(path, &data->stat) < 0) {
@@ -182,11 +183,13 @@ index_recurse(size_t size, const char *dir, int examine, size_t rootlen)
/* examine */
if (examine) {
- data->mime = magic_file(magic_cookie, path);
- if (!data->mime)
+ const char *mime = magic_file(magic_cookie, path);
+ if (!mime) {
fprintf(stderr, "[index] error magic_file() %s: %s\n", path,
magic_error(magic_cookie));
- }
+ } else
+ data->mime = strdup(mime);
+ }
/* recurse */
map_t *child = NULL;