You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	jpeg2000dec: Propagate error code from get_cox() correctly
Without this the context state could become inconsistent Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -310,7 +310,7 @@ static int get_cod(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, | ||||
|                    uint8_t *properties) | ||||
| { | ||||
|     Jpeg2000CodingStyle tmp; | ||||
|     int compno; | ||||
|     int compno, ret; | ||||
|  | ||||
|     if (bytestream2_get_bytes_left(&s->g) < 5) | ||||
|         return AVERROR(EINVAL); | ||||
| @@ -323,7 +323,9 @@ static int get_cod(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, | ||||
|     tmp.nlayers = bytestream2_get_be16u(&s->g); | ||||
|     tmp.mct     = bytestream2_get_byteu(&s->g); // multiple component transformation | ||||
|  | ||||
|     get_cox(s, &tmp); | ||||
|     if ((ret = get_cox(s, &tmp)) < 0) | ||||
|         return ret; | ||||
|  | ||||
|     for (compno = 0; compno < s->ncomponents; compno++) | ||||
|         if (!(properties[compno] & HAD_COC)) | ||||
|             memcpy(c + compno, &tmp, sizeof(tmp)); | ||||
| @@ -335,7 +337,7 @@ static int get_cod(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, | ||||
| static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, | ||||
|                    uint8_t *properties) | ||||
| { | ||||
|     int compno; | ||||
|     int compno, ret; | ||||
|  | ||||
|     if (bytestream2_get_bytes_left(&s->g) < 2) | ||||
|         return AVERROR(EINVAL); | ||||
| @@ -344,7 +346,9 @@ static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, | ||||
|  | ||||
|     c      += compno; | ||||
|     c->csty = bytestream2_get_byteu(&s->g); | ||||
|     get_cox(s, c); | ||||
|  | ||||
|     if ((ret = get_cox(s, c)) < 0) | ||||
|         return ret; | ||||
|  | ||||
|     properties[compno] |= HAD_COC; | ||||
|     return 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user