GNU bug report logs - #75911
maint: fix s390 buffer flushes

Previous Next

Package: gzip;

Reported by: Eduard Stefes <eduard.stefes <at> ibm.com>

Date: Tue, 28 Jan 2025 14:38:02 UTC

Severity: normal

Merged with 74651, 75924

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 75911 in the body.
You can then email your comments to 75911 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gzip <at> gnu.org:
bug#75911; Package gzip. (Tue, 28 Jan 2025 14:38:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eduard Stefes <eduard.stefes <at> ibm.com>:
New bug report received and forwarded. Copy sent to bug-gzip <at> gnu.org. (Tue, 28 Jan 2025 14:38:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eduard Stefes <eduard.stefes <at> ibm.com>
To: bug-gzip <bug-gzip <at> gnu.org>
Cc: Andreas Hasenack <andreas.hasenack <at> canonical.com>,
 Eduard Stefes <eduard.stefes <at> ibm.com>, Ilya Leoshkevich <iii <at> linux.ibm.com>
Subject: maint: fix s390 buffer flushes
Date: Tue, 28 Jan 2025 15:37:01 +0100
Problem reported by Nick Rosbrook in:
https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/2083700

align the behavior of dfltcc_inflate to do the same as gzip_inflate
when it hits a premature EOF
---
 dfltcc.c    | 7 ++++++-
 tests/hufts | 6 ++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/dfltcc.c b/dfltcc.c
index 811c1f8..07726cb 100644
--- a/dfltcc.c
+++ b/dfltcc.c
@@ -18,6 +18,7 @@
 #include <config.h>
 
 #include <stdlib.h>
+#include <errno.h>
 
 #ifdef HAVE_SYS_SDT_H
 # include <sys/sdt.h>
@@ -437,7 +438,11 @@ dfltcc_inflate ()
           if (fill_inbuf (1) == EOF)
             {
               /* Premature EOF.  */
-              return 2;
+              flush_outbuf();
+              errno = 0;
+              read_error();
+              /* Premature EOF.  */
+              __builtin_unreachable();
             }
           inptr = 0;
         }
diff --git a/tests/hufts b/tests/hufts
index c464ef6..6dbb8ac 100755
--- a/tests/hufts
+++ b/tests/hufts
@@ -40,10 +40,12 @@ compare exp err || fail=1
 
 printf '\037\213\010\000\060\060\060\060\060\060\144\000\000\000' > bug33501 \
   || framework_failure_
-printf '\ngzip: stdin: invalid compressed data--format violated\n' >exp33501 \
+printf '\ngzip: stdin: invalid compressed data--format violated\n' > exp33501.1 \
+  || framework_failure_
+printf '\ngzip: stdin: unexpected end of file\n' > exp33501.2 \
   || framework_failure_
 returns_ 1 gzip -d <bug33501 >out33501 2> err33501-raw || fail=1
 sed "$clean_stderr" err33501-raw > err33501 || framework_failure_
-compare exp33501 err33501 || fail=1
+compare exp33501.1 err33501 || compare exp33501.2 err33501 || fail=1
 
 Exit $fail
-- 
2.48.0





Information forwarded to bug-gzip <at> gnu.org:
bug#75911; Package gzip. (Tue, 28 Jan 2025 14:45:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ilya Leoshkevich <iii <at> linux.ibm.com>
To: Eduard Stefes <eduard.stefes <at> ibm.com>, bug-gzip <bug-gzip <at> gnu.org>
Cc: Andreas Hasenack <andreas.hasenack <at> canonical.com>
Subject: Re: maint: fix s390 buffer flushes
Date: Tue, 28 Jan 2025 15:44:02 +0100
On Tue, 2025-01-28 at 15:37 +0100, Eduard Stefes wrote:

LGTM, but I have several stylistic comments.

> Problem reported by Nick Rosbrook in:
> https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/2083700
> 
> align the behavior of dfltcc_inflate to do the same as gzip_inflate
> when it hits a premature EOF

Looking at the style of other gzip commits:
I would capitalize "Align" and add a dot at the end.

> ---
>  dfltcc.c    | 7 ++++++-
>  tests/hufts | 6 ++++--
>  2 files changed, 10 insertions(+), 3 deletions(-)


> diff --git a/dfltcc.c b/dfltcc.c
> index 811c1f8..07726cb 100644
> --- a/dfltcc.c
> +++ b/dfltcc.c
> @@ -18,6 +18,7 @@
>  #include <config.h>
>  
>  #include <stdlib.h>
> +#include <errno.h>
>  
>  #ifdef HAVE_SYS_SDT_H
>  # include <sys/sdt.h>
> @@ -437,7 +438,11 @@ dfltcc_inflate ()
>            if (fill_inbuf (1) == EOF)
>              {
>                /* Premature EOF.  */
> -              return 2;
> +              flush_outbuf();

Here and below: there should be a space before ().

> +              errno = 0;
> +              read_error();
> +              /* Premature EOF.  */

Duplicate comment, I would drop this copy.

> +              __builtin_unreachable();
>              }
>            inptr = 0;
>          }

[...]

Best regards,
Ilya

Information forwarded to bug-gzip <at> gnu.org:
bug#75911; Package gzip. (Wed, 29 Jan 2025 14:18:02 GMT) Full text and rfc822 format available.

Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eduard Stefes <Eduard.Stefes <at> ibm.com>
To: "bug-gzip <at> gnu.org" <bug-gzip <at> gnu.org>, "iii <at> linux.ibm.com"
 <iii <at> linux.ibm.com>, Eduard Stefes <Eduard.Stefes <at> ibm.com>
Cc: "andreas.hasenack <at> canonical.com" <andreas.hasenack <at> canonical.com>
Subject: Re: maint: fix s390 buffer flushes
Date: Wed, 29 Jan 2025 14:17:27 +0000
Hi,

Thx for the review. I'll resend with the corrections. 

On Tue, 2025-01-28 at 15:44 +0100, Ilya Leoshkevich wrote:
> On Tue, 2025-01-28 at 15:37 +0100, Eduard Stefes wrote:
> 
> LGTM, but I have several stylistic comments.
> 
> > Problem reported by Nick Rosbrook in:
> > https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/2083700
> > 
> > align the behavior of dfltcc_inflate to do the same as gzip_inflate
> > when it hits a premature EOF
> 
> Looking at the style of other gzip commits:
> I would capitalize "Align" and add a dot at the end.
> 
> > ---
> >  dfltcc.c    | 7 ++++++-
> >  tests/hufts | 6 ++++--
> >  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> 
> > diff --git a/dfltcc.c b/dfltcc.c
> > index 811c1f8..07726cb 100644
> > --- a/dfltcc.c
> > +++ b/dfltcc.c
> > @@ -18,6 +18,7 @@
> >  #include <config.h>
> >  
> >  #include <stdlib.h>
> > +#include <errno.h>
> >  
> >  #ifdef HAVE_SYS_SDT_H
> >  # include <sys/sdt.h>
> > @@ -437,7 +438,11 @@ dfltcc_inflate ()
> >            if (fill_inbuf (1) == EOF)
> >              {
> >                /* Premature EOF.  */
> > -              return 2;
> > +              flush_outbuf();
> 
> Here and below: there should be a space before ().
> 
> > +              errno = 0;
> > +              read_error();
> > +              /* Premature EOF.  */
> 
> Duplicate comment, I would drop this copy.
> 
> > +              __builtin_unreachable();
> >              }
> >            inptr = 0;
> >          }
> 
> [...]
> 
> Best regards,
> Ilya

-- 
Eduard Stefes <Eduard.Stefes <at> ibm.com>

Merged 74651 75911 75924. Request was from Paul Eggert <eggert <at> cs.ucla.edu> to control <at> debbugs.gnu.org. (Wed, 29 Jan 2025 19:02:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 07 May 2025 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 39 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.