提交 8089b7fa 编写于 作者: M Martin Storsjö

avoptions: Check the return value from av_get_number

This avoids doing a division by zero if the option wasn't found,
or wasn't an option of an appropriate type.
Signed-off-by: NMartin Storsjö <martin@martin.st>
上级 422b2362
......@@ -290,7 +290,8 @@ double av_get_double(void *obj, const char *name, const AVOption **o_out)
double num=1;
int den=1;
av_get_number(obj, name, o_out, &num, &den, &intnum);
if (av_get_number(obj, name, o_out, &num, &den, &intnum) < 0)
return -1;
return num*intnum/den;
}
......@@ -300,7 +301,8 @@ AVRational av_get_q(void *obj, const char *name, const AVOption **o_out)
double num=1;
int den=1;
av_get_number(obj, name, o_out, &num, &den, &intnum);
if (av_get_number(obj, name, o_out, &num, &den, &intnum) < 0)
return (AVRational){-1, 0};
if (num == 1.0 && (int)intnum == intnum)
return (AVRational){intnum, den};
else
......@@ -313,7 +315,8 @@ int64_t av_get_int(void *obj, const char *name, const AVOption **o_out)
double num=1;
int den=1;
av_get_number(obj, name, o_out, &num, &den, &intnum);
if (av_get_number(obj, name, o_out, &num, &den, &intnum) < 0)
return -1;
return num*intnum/den;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册