Mercurial > libavcodec.hg
comparison mjpegdec.c @ 11006:d99420b73262 libavcodec
Fix heap overflow due to lack of nb_components check.
author | michael |
---|---|
date | Mon, 25 Jan 2010 13:26:10 +0000 |
parents | 2aab93afc826 |
children | 8d4ae55fdada |
comparison
equal
deleted
inserted
replaced
11005:bc62e2826782 | 11006:d99420b73262 |
---|---|
897 int ilv, prev_shift; | 897 int ilv, prev_shift; |
898 | 898 |
899 /* XXX: verify len field validity */ | 899 /* XXX: verify len field validity */ |
900 len = get_bits(&s->gb, 16); | 900 len = get_bits(&s->gb, 16); |
901 nb_components = get_bits(&s->gb, 8); | 901 nb_components = get_bits(&s->gb, 8); |
902 if (nb_components == 0 || nb_components > MAX_COMPONENTS){ | |
903 av_log(s->avctx, AV_LOG_ERROR, "decode_sos: nb_components (%d) unsupported\n", nb_components); | |
904 return -1; | |
905 } | |
902 if (len != 6+2*nb_components) | 906 if (len != 6+2*nb_components) |
903 { | 907 { |
904 av_log(s->avctx, AV_LOG_ERROR, "decode_sos: invalid len (%d)\n", len); | 908 av_log(s->avctx, AV_LOG_ERROR, "decode_sos: invalid len (%d)\n", len); |
905 return -1; | 909 return -1; |
906 } | 910 } |