aboutsummaryrefslogtreecommitdiffstats
path: root/src/directory.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-09-03 03:11:58 -0700
committerEric Wong <normalperson@yhbt.net>2008-09-03 03:14:17 -0700
commit3f29cbaf360c5e9542c7b9e6648626d6e0ea8b1e (patch)
tree49dd735d55dd8d5964c4273998a2f3fc454534bb /src/directory.c
parent86d4a80b0069b2be368bfe4af164be5ff72a48b4 (diff)
parentcdc9bb460e9536577d2747d51c76306a91b3d064 (diff)
downloadmpd-3f29cbaf360c5e9542c7b9e6648626d6e0ea8b1e.tar.gz
mpd-3f29cbaf360c5e9542c7b9e6648626d6e0ea8b1e.tar.xz
mpd-3f29cbaf360c5e9542c7b9e6648626d6e0ea8b1e.zip
Merge branch 'mk/tag'
* mk/tag: (22 commits) tag: fix segfault on update utf8.h: Fix build (broken os_compat.h #include) tag: optimize tag_dup(), copy item references tag: fix the shout and oggflac plugins const pointers tag: static directory name tag: try not to reallocate tag.items in every add() call song: don't export newNullSong() tag: try not to duplicate the input string tag: pass length to fix_utf8() added "length" parameter to validUtf8String() assert value!=NULL in fix_utf8() tag: converted macro fixUtf8() to an inline function tag: added a pool for tag items tag: converted tag_item.value to a char array removed tree.c tag: converted MpdTag.items to a pointer list tag: moved code to tag_id3.c wavpack: tag_new() cannot fail tag: converted tag_add_item() to an inline function ...
Diffstat (limited to 'src/directory.c')
-rw-r--r--src/directory.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/directory.c b/src/directory.c
index 94a55d664..33a862ddd 100644
--- a/src/directory.c
+++ b/src/directory.c
@@ -901,7 +901,7 @@ static void readDirectoryInfo(FILE * fp, Directory * directory)
{
char buffer[MPD_PATH_MAX * 2];
int bufferSize = MPD_PATH_MAX * 2;
- char *key;
+ char key[MPD_PATH_MAX * 2];
Directory *subDirectory;
int strcmpRet;
char *name;
@@ -911,7 +911,7 @@ static void readDirectoryInfo(FILE * fp, Directory * directory)
while (myFgets(buffer, bufferSize, fp)
&& 0 != strncmp(DIRECTORY_END, buffer, strlen(DIRECTORY_END))) {
if (0 == strncmp(DIRECTORY_DIR, buffer, strlen(DIRECTORY_DIR))) {
- key = xstrdup(&(buffer[strlen(DIRECTORY_DIR)]));
+ strcpy(key, &(buffer[strlen(DIRECTORY_DIR)]));
if (!myFgets(buffer, bufferSize, fp))
FATAL("Error reading db, fgets\n");
/* for compatibility with db's prior to 0.11 */
@@ -925,7 +925,7 @@ static void readDirectoryInfo(FILE * fp, Directory * directory)
strlen(DIRECTORY_BEGIN))) {
FATAL("Error reading db at line: %s\n", buffer);
}
- name = xstrdup(&(buffer[strlen(DIRECTORY_BEGIN)]));
+ name = &(buffer[strlen(DIRECTORY_BEGIN)]);
while (nextDirNode && (strcmpRet =
strcmp(key,
@@ -951,8 +951,6 @@ static void readDirectoryInfo(FILE * fp, Directory * directory)
(void *)subDirectory);
}
- free(name);
- free(key);
readDirectoryInfo(fp, subDirectory);
} else if (0 == strncmp(SONG_BEGIN, buffer, strlen(SONG_BEGIN))) {
readSongInfoIntoList(fp, directory->songs, directory);