Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
@ 2022-04-05 13:37 Martijn van Beurden
  2022-04-05 16:04 ` Andreas Rheinhardt
  2022-04-06  7:12 ` Martijn van Beurden
  0 siblings, 2 replies; 6+ messages in thread
From: Martijn van Beurden @ 2022-04-05 13:37 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Martijn van Beurden

---
 libavcodec/flacdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
index dd6026f9de..cb32d7cae8 100644
--- a/libavcodec/flacdec.c
+++ b/libavcodec/flacdec.c
@@ -260,7 +260,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
             for (; i < samples; i++)
                 *decoded++ = get_sbits_long(&gb, tmp);
         } else {
-            int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX;
+            int real_limit = (tmp > 1) ? (INT_MAX >> (tmp - 1)) + 2 : INT_MAX;
             for (; i < samples; i++) {
                 int v = get_sr_golomb_flac(&gb, tmp, real_limit, 1);
                 if (v == 0x80000000){
-- 
2.30.2

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
  2022-04-05 13:37 [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX Martijn van Beurden
@ 2022-04-05 16:04 ` Andreas Rheinhardt
  2022-04-05 16:26   ` Martijn van Beurden
  2022-04-06  7:12 ` Martijn van Beurden
  1 sibling, 1 reply; 6+ messages in thread
From: Andreas Rheinhardt @ 2022-04-05 16:04 UTC (permalink / raw)
  To: ffmpeg-devel

Martijn van Beurden:
> ---
>  libavcodec/flacdec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
> index dd6026f9de..cb32d7cae8 100644
> --- a/libavcodec/flacdec.c
> +++ b/libavcodec/flacdec.c
> @@ -260,7 +260,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
>              for (; i < samples; i++)
>                  *decoded++ = get_sbits_long(&gb, tmp);
>          } else {
> -            int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX;
> +            int real_limit = (tmp > 1) ? (INT_MAX >> (tmp - 1)) + 2 : INT_MAX;
>              for (; i < samples; i++) {
>                  int v = get_sr_golomb_flac(&gb, tmp, real_limit, 1);
>                  if (v == 0x80000000){

Wouldn't it be possible to use unsigned for real_limit?

- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
  2022-04-05 16:04 ` Andreas Rheinhardt
@ 2022-04-05 16:26   ` Martijn van Beurden
  0 siblings, 0 replies; 6+ messages in thread
From: Martijn van Beurden @ 2022-04-05 16:26 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Op di 5 apr. 2022 18:04 schreef Andreas Rheinhardt <
andreas.rheinhardt@outlook.com>:

>
> Wouldn't it be possible to use unsigned for real_limit?
>

The limit is passed to get_ur_golomb_jpegls which takes int. In that
function, the limit is subtracted from, and the function is used by quite a
few other codecs, so changing it seems risky.

Besides creating a cleaner flacdec.c, it wouldn't achieve much either. For
tmp = 0 or tmp = 1, reaching this limit means the file contains a INT_MAX
or INT_MAX/2 unary coded, so a single symbol of either 2GiB or 1GiB in size.

>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
  2022-04-05 13:37 [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX Martijn van Beurden
  2022-04-05 16:04 ` Andreas Rheinhardt
@ 2022-04-06  7:12 ` Martijn van Beurden
  2022-04-29 14:48   ` Martijn van Beurden
  1 sibling, 1 reply; 6+ messages in thread
From: Martijn van Beurden @ 2022-04-06  7:12 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Op di 5 apr. 2022 om 15:37 schreef Martijn van Beurden <mvanb1@gmail.com>:
>
> ---
>  libavcodec/flacdec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
> index dd6026f9de..cb32d7cae8 100644
> --- a/libavcodec/flacdec.c
> +++ b/libavcodec/flacdec.c
> @@ -260,7 +260,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
>              for (; i < samples; i++)
>                  *decoded++ = get_sbits_long(&gb, tmp);
>          } else {
> -            int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX;
> +            int real_limit = (tmp > 1) ? (INT_MAX >> (tmp - 1)) + 2 : INT_MAX;
>              for (; i < samples; i++) {
>                  int v = get_sr_golomb_flac(&gb, tmp, real_limit, 1);
>                  if (v == 0x80000000){
> --
> 2.30.2
>

A file needing this patch to decode properly can be found here:
https://github.com/ktmf01/flac-test-files/blob/main/subset/63%20-%20predictor%20overflow%20check%2C%2024-bit.flac

Kind regards, Martijn van Beurden
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
  2022-04-06  7:12 ` Martijn van Beurden
@ 2022-04-29 14:48   ` Martijn van Beurden
  2022-04-30 19:26     ` Michael Niedermayer
  0 siblings, 1 reply; 6+ messages in thread
From: Martijn van Beurden @ 2022-04-29 14:48 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Op wo 6 apr. 2022 om 09:12 schreef Martijn van Beurden <mvanb1@gmail.com>:
>
> Op di 5 apr. 2022 om 15:37 schreef Martijn van Beurden <mvanb1@gmail.com>:
> >
> > ---
> >  libavcodec/flacdec.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
> > index dd6026f9de..cb32d7cae8 100644
> > --- a/libavcodec/flacdec.c
> > +++ b/libavcodec/flacdec.c
> > @@ -260,7 +260,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
> >              for (; i < samples; i++)
> >                  *decoded++ = get_sbits_long(&gb, tmp);
> >          } else {
> > -            int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX;
> > +            int real_limit = (tmp > 1) ? (INT_MAX >> (tmp - 1)) + 2 : INT_MAX;
> >              for (; i < samples; i++) {
> >                  int v = get_sr_golomb_flac(&gb, tmp, real_limit, 1);
> >                  if (v == 0x80000000){
> > --
> > 2.30.2
> >
>
> A file needing this patch to decode properly can be found here:
> https://github.com/ktmf01/flac-test-files/blob/main/subset/63%20-%20predictor%20overflow%20check%2C%2024-bit.flac
>
> Kind regards, Martijn van Beurden

Hereby I'd like to once more bring this patch to the attention of the
mailinglist.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
  2022-04-29 14:48   ` Martijn van Beurden
@ 2022-04-30 19:26     ` Michael Niedermayer
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Niedermayer @ 2022-04-30 19:26 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 1725 bytes --]

On Fri, Apr 29, 2022 at 04:48:23PM +0200, Martijn van Beurden wrote:
> Op wo 6 apr. 2022 om 09:12 schreef Martijn van Beurden <mvanb1@gmail.com>:
> >
> > Op di 5 apr. 2022 om 15:37 schreef Martijn van Beurden <mvanb1@gmail.com>:
> > >
> > > ---
> > >  libavcodec/flacdec.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
> > > index dd6026f9de..cb32d7cae8 100644
> > > --- a/libavcodec/flacdec.c
> > > +++ b/libavcodec/flacdec.c
> > > @@ -260,7 +260,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
> > >              for (; i < samples; i++)
> > >                  *decoded++ = get_sbits_long(&gb, tmp);
> > >          } else {
> > > -            int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX;
> > > +            int real_limit = (tmp > 1) ? (INT_MAX >> (tmp - 1)) + 2 : INT_MAX;
> > >              for (; i < samples; i++) {
> > >                  int v = get_sr_golomb_flac(&gb, tmp, real_limit, 1);
> > >                  if (v == 0x80000000){
> > > --
> > > 2.30.2
> > >
> >
> > A file needing this patch to decode properly can be found here:
> > https://github.com/ktmf01/flac-test-files/blob/main/subset/63%20-%20predictor%20overflow%20check%2C%2024-bit.flac
> >
> > Kind regards, Martijn van Beurden
> 
> Hereby I'd like to once more bring this patch to the attention of the
> mailinglist.

will apply

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Take away the freedom of one citizen and you will be jailed, take away
the freedom of all citizens and you will be congratulated by your peers
in Parliament.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-04-30 19:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-05 13:37 [FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX Martijn van Beurden
2022-04-05 16:04 ` Andreas Rheinhardt
2022-04-05 16:26   ` Martijn van Beurden
2022-04-06  7:12 ` Martijn van Beurden
2022-04-29 14:48   ` Martijn van Beurden
2022-04-30 19:26     ` Michael Niedermayer

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git