[FFmpeg-devel] [PATCH] parseutils: reliably detect out-of-range alpha.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Tue Apr 24 20:22:08 CEST 2012
This should fix the FATE test on ARM (not tested),
but it should also detect alpha values like 2^128
reliably as invalid which would be another out-of-range
case with implementation-dependant behaviour.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
---
libavutil/parseutils.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c
index 064d490..037c4fb 100644
--- a/libavutil/parseutils.c
+++ b/libavutil/parseutils.c
@@ -394,7 +394,11 @@ int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen,
if (!strncmp(alpha_string, "0x", 2)) {
alpha = strtoul(alpha_string, &tail, 16);
} else {
- alpha = 255 * strtod(alpha_string, &tail);
+ double norm_alpha = strtod(alpha_string, &tail);
+ if (norm_alpha < 0.0 || norm_alpha > 1.0)
+ alpha = 256;
+ else
+ alpha = 255 * norm_alpha;
}
if (tail == alpha_string || *tail || alpha > 255) {
--
1.7.10
More information about the ffmpeg-devel
mailing list