diff --git a/src/database/update.c b/src/database/update.c index c8d5b5cfad85ce972f4e33cf25251184393c68b5..57e938f505675f9a1395ea3c5c416e13e4ccb1b3 100644 --- a/src/database/update.c +++ b/src/database/update.c @@ -49,7 +49,8 @@ __database_add_kara(volatile sqlite3 *db, const char *filename) sqlite3_stmt *stmt = NULL; long status = false, kara_id = 0; struct kara_metadata data; - char path[PATH_MAX], *saveptr = NULL, *token, *id = NULL; + char _path[PATH_MAX], *saveptr = NULL, *token, *id = NULL; + char *path = _path; /* Metadata */ if (kara_metadata_read(&data, filename) != 0) { @@ -62,8 +63,10 @@ __database_add_kara(volatile sqlite3 *db, const char *filename) /* Try to find an id in the filename, reuse of variables, it's ugly */ path[PATH_MAX - 1] = '\0'; memcpy(path, filename, (strlen(filename) + 1) * sizeof(char)); - while (NULL != (token = strtok_r(path, "/", &saveptr))) + while (NULL != (token = strtok_r(path, "/", &saveptr))) { id = token; + path = NULL; + } size_t id_len = strspn(id, "0123456789"); id[id_len] = '\0'; /* Replace the . of .mkv */ STRTOL(kara_id, id, token, id_len); @@ -184,6 +187,7 @@ database_update(volatile sqlite3 *db, const char *kara_dir, int check_timestamp) if (dir->d_type == DT_REG) { database_get_update(db, &db_timestamp, NULL, NULL); + LOG_INFO("DB", "File is '%s'", path); if (check_timestamp && get_mtime(path) < db_timestamp) { LOG_INFO("DB", "Skip update of kara '%s' be cause of " "timestamps", path);