diff options
author | wm4 <wm4@nowhere> | 2016-08-05 12:23:15 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-08-05 12:23:15 +0200 |
commit | eccabeb81c67953ca15f8d318fccc0f7f4370020 (patch) | |
tree | c1992a77ff7dce4a0eb406472980a918a29205e9 | |
parent | 0c4a73fa21d397a46ccc4a9892be9207091fc7b9 (diff) | |
download | mpv-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.c | 6 |
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; |