On 2022-03-02 06:51:29 [+0200], Tzvetomir Stoyanov (VMware) wrote: > Some zlib APIs set the errno in case of an error and return Z_ERRNO. > In these cases, errno should not be overwritten by the tarce-cmd zlib > wrappers. > > Suggested-by: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@xxxxxxxxx> > --- > lib/trace-cmd/trace-compress-zlib.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/lib/trace-cmd/trace-compress-zlib.c b/lib/trace-cmd/trace-compress-zlib.c > index 41342597..0dfd4f15 100644 > --- a/lib/trace-cmd/trace-compress-zlib.c > +++ b/lib/trace-cmd/trace-compress-zlib.c > @@ -33,6 +33,8 @@ static int zlib_compress(const void *in, int in_bytes, void *out, int out_bytes) > case Z_STREAM_ERROR: > errno = -EINVAL; > break; > + case Z_ERRNO: > + break; > default: > errno = -EFAULT; > break; > @@ -61,6 +63,8 @@ static int zlib_decompress(const void *in, int in_bytes, void *out, int out_byte > case Z_DATA_ERROR: > errno = -EINVAL; > break; > + case Z_ERRNO: > + break; > default: > errno = -EFAULT; > break; I was thinking about returning the error for compress/decompress via the return value and not touching errno at all. Sebastian