summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-08-05 12:23:15 +0200
committerwm4 <wm4@nowhere>2016-08-05 12:23:15 +0200
commiteccabeb81c67953ca15f8d318fccc0f7f4370020 (patch)
treec1992a77ff7dce4a0eb406472980a918a29205e9
parent0c4a73fa21d397a46ccc4a9892be9207091fc7b9 (diff)
downloadmpv-eccabeb81c67953ca15f8d318fccc0f7f4370020.tar.bz2
mpv-eccabeb81c67953ca15f8d318fccc0f7f4370020.tar.xz
options: fix channels options copy/free operations
For some fucked up reason the arguments can be NULL. Makes no sense to me, but ok.
-rw-r--r--options/m_option.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/options/m_option.c b/options/m_option.c
index 231b9aa5d2..fd1e6770ee 100644
--- a/options/m_option.c
+++ b/options/m_option.c
@@ -2365,6 +2365,9 @@ static char *print_channels(const m_option_t *opt, const void *val)
static void free_channels(void *src)
{
+ if (!src)
+ return;
+
struct m_channels *ch = src;
talloc_free(ch->chmaps);
*ch = (struct m_channels){0};
@@ -2372,6 +2375,9 @@ static void free_channels(void *src)
static void copy_channels(const m_option_t *opt, void *dst, const void *src)
{
+ if (!(dst && src))
+ return;
+
struct m_channels *ch = dst;
free_channels(dst);
*ch = *(struct m_channels *)src;