libeplayer3: fix invalid free()

according to the man pages....
* dirname() can not return NULL
* the pointer returned by dirname must not be free()d
* strdup() can return NULL
This commit is contained in:
Stefan Seyfried
2012-10-04 00:02:51 +02:00
parent c048f57223
commit ed10c47327
2 changed files with 10 additions and 10 deletions

View File

@@ -290,14 +290,14 @@ static int SrtGetSubtitle(Context_t *context, char * Filename) {
copyFilename = strdup(Filename); copyFilename = strdup(Filename);
FilenameFolder = dirname(copyFilename); if (copyFilename == NULL)
if (FilenameFolder == NULL)
{ {
srt_err("FilenameFolder NULL\n"); srt_err("copyFilename NULL\n");
return cERR_SRT_ERROR; return cERR_SRT_ERROR;
} }
FilenameFolder = dirname(copyFilename);
srt_printf(10, "folder: %s\n", FilenameFolder); srt_printf(10, "folder: %s\n", FilenameFolder);
getExtension(copyFilename, &FilenameExtension); getExtension(copyFilename, &FilenameExtension);
@@ -305,7 +305,7 @@ static int SrtGetSubtitle(Context_t *context, char * Filename) {
if (FilenameExtension == NULL) if (FilenameExtension == NULL)
{ {
srt_err("FilenameExtension NULL\n"); srt_err("FilenameExtension NULL\n");
free(FilenameFolder); free(copyFilename);
return cERR_SRT_ERROR; return cERR_SRT_ERROR;
} }

View File

@@ -291,14 +291,14 @@ static int SsaGetSubtitle(Context_t *context, char * Filename) {
copyFilename = strdup(Filename); copyFilename = strdup(Filename);
FilenameFolder = dirname(copyFilename); if (copyFilename == NULL)
if (FilenameFolder == NULL)
{ {
ssa_err("FilenameFolder NULL\n"); ssa_err("copyFilename NULL\n");
return cERR_SSA_ERROR; return cERR_SSA_ERROR;
} }
FilenameFolder = dirname(copyFilename);
ssa_printf(10, "folder: %s\n", FilenameFolder); ssa_printf(10, "folder: %s\n", FilenameFolder);
getExtension(copyFilename, &FilenameExtension); getExtension(copyFilename, &FilenameExtension);
@@ -306,7 +306,7 @@ static int SsaGetSubtitle(Context_t *context, char * Filename) {
if (FilenameExtension == NULL) if (FilenameExtension == NULL)
{ {
ssa_err("FilenameExtension NULL\n"); ssa_err("FilenameExtension NULL\n");
free(FilenameFolder); free(copyFilename);
return cERR_SSA_ERROR; return cERR_SSA_ERROR;
} }