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.

Pierluigi
_______________________________________________

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