changeset 15743:c06986fbf819

Fix crash with e.g. -vf scale=::
author reimar
date Fri, 17 Jun 2005 08:15:08 +0000
parents 55cbf0c204bc
children 268cb6b8484e
files m_option.c
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/m_option.c	Fri Jun 17 08:11:56 2005 +0000
+++ b/m_option.c	Fri Jun 17 08:15:08 2005 +0000
@@ -1261,8 +1261,16 @@
     last_ptr = ptr+1;
   }
   if(r < 0) return r;
+  if (!last_ptr[0]) // count an empty field at the end, too
+    nold++;
+  if (nold > nopts) {
+    mp_msg(MSGT_CFGPARSER, MSGL_ERR, "Too many options for %s\n", name);
+    return M_OPT_OUT_OF_RANGE;
+  }
   if(!_ret) // Just test
     return 1;
+  if (n == 0) // No options or only empty options
+    return 1;
 
   ret = malloc((n+2)*2*sizeof(char*));
   n = nold = 0;
@@ -1309,6 +1317,8 @@
     return r;
   if(!dst)
     return 1;
+  if (!opts) // no arguments given
+    return 1;
 
   for(r = 0 ; opts[r] ; r += 2)
     m_struct_set(desc,dst,opts[r],opts[r+1]);