summaryrefslogtreecommitdiff
path: root/libavutil/opt.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-05-03 16:14:55 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-05-03 16:37:04 +0200
commit52835cb8e16cd54bd4b3052279f184882cbf54c2 (patch)
treed9a2f6b95864f6be8c90a374e17afbb5a365a50f /libavutil/opt.c
parenta141948a8be73546c1e684c6a1e37a11f2237c76 (diff)
avutil/opt: Avoid division by 0
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/opt.c')
-rw-r--r--libavutil/opt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavutil/opt.c b/libavutil/opt.c
index 092446b02b..62db1b50b7 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -85,8 +85,9 @@ static int write_number(void *obj, const AVOption *o, void *dst, double num, int
{
if (o->type != AV_OPT_TYPE_FLAGS &&
(o->max * den < num * intnum || o->min * den > num * intnum)) {
+ num = den ? num*intnum/den : (num*intnum ? INFINITY : NAN);
av_log(obj, AV_LOG_ERROR, "Value %f for parameter '%s' out of range [%g - %g]\n",
- num*intnum/den, o->name, o->min, o->max);
+ num, o->name, o->min, o->max);
return AVERROR(ERANGE);
}
if (o->type == AV_OPT_TYPE_FLAGS) {