On 22/03/2020 09:18, Pierluigi Frullani via clamav-users wrote:
Hi Mark
   thanks for your input.
Didn't work though :(
I've put a bit of debug messages to see where it is passing and it always pass in the "compr" check:

        pad = size % TAR_BLOCKSIZE ? (TAR_BLOCKSIZE - (size % TAR_BLOCKSIZE)) : 0;
         if (compr) {
             if (off == gzseek(dbio->gzs, 0, SEEK_CUR)) {
                 gzsek = gzseek(dbio->gzs, (long)size + pad, SEEK_CUR);
                 printf("gzseek \n");
             }
             else if (pad) {
                 gzseek(dbio->gzs, pad, SEEK_CUR);
                 printf("pad gzseek \n");
             }
Now the loop says:
  LibClamAV debug: cli_tgzload: Loading COPYING, size: 17992
gzseek
LibClamAV debug: cli_tgzload: Loading COPYING, size: 17992
gzseek

so it's in the first part of the "if".
Thinking it could have been a problem with gzseek I've added the "gzsek" variable so I can check the return value:
         if ( gzsek == -1 )
            break;

but it stays in loop.
So it could eventually be a problem with the libz library ....

I've filed a bug to bugzilla, but try to find also by myself.


Solaris 10 has libz 1.2.3 - you might want to build the latest version (1.2.8?) and use that, I have vague memories that some newer source (not just clamav) just doesn't work with the older versions.

        Cheers,
                Gary    B-)

_______________________________________________

clamav-users mailing list
clamav-users@lists.clamav.net
https://lists.clamav.net/mailman/listinfo/clamav-users


Help us build a comprehensive ClamAV guide:
https://github.com/vrtadmin/clamav-faq

http://www.clamav.net/contact.html#ml

Reply via email to