summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-09-18 19:56:15 +0200
committerwm4 <wm4@nowhere>2013-09-18 19:56:15 +0200
commit5249cccfcfb6c345a40dff2dee464d287fc69605 (patch)
tree7a0ba5538e6306365bde54ca9239156649026a18
parent1298dbdf013ef055fc2bb66fb3947441b7afc222 (diff)
downloadmpv-5249cccfcfb6c345a40dff2dee464d287fc69605.tar.bz2
mpv-5249cccfcfb6c345a40dff2dee464d287fc69605.tar.xz
Config path functions can return NULL
It's quite unlikely, but functions like mp_find_user_config_file() can return NULL, e.g. if $HOME is unset. Fix all the code that didn't check for this correctly yet.
-rw-r--r--audio/filter/af_export.c6
-rw-r--r--mpvcore/mplayer.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/audio/filter/af_export.c b/audio/filter/af_export.c
index b4286c0e62..3a6f808a34 100644
--- a/audio/filter/af_export.c
+++ b/audio/filter/af_export.c
@@ -99,6 +99,12 @@ static int control(struct af_instance* af, int cmd, void* arg)
for(i = 1; i < af->data->nch; i++)
s->buf[i] = (uint8_t *)s->buf[0] + i*s->sz*af->data->bps;
+ if (!s->filename) {
+ mp_msg(MSGT_AFILTER, MSGL_FATAL, "[export] No filename set.\n",
+ s->filename);
+ return AF_ERROR;
+ }
+
// Init memory mapping
s->fd = open(s->filename, O_RDWR | O_CREAT | O_TRUNC, 0640);
mp_msg(MSGT_AFILTER, MSGL_INFO, "[export] Exporting to file: %s\n", s->filename);
diff --git a/mpvcore/mplayer.c b/mpvcore/mplayer.c
index 381f3385fd..d9715e447f 100644
--- a/mpvcore/mplayer.c
+++ b/mpvcore/mplayer.c
@@ -637,9 +637,11 @@ static void mk_config_dir(char *subdir)
{
void *tmp = talloc_new(NULL);
char *confdir = talloc_steal(tmp, mp_find_user_config_file(""));
- if (subdir)
- confdir = mp_path_join(tmp, bstr0(confdir), bstr0(subdir));
- mkdir(confdir, 0777);
+ if (confdir) {
+ if (subdir)
+ confdir = mp_path_join(tmp, bstr0(confdir), bstr0(subdir));
+ mkdir(confdir, 0777);
+ }
talloc_free(tmp);
}