bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] Missing files when option --wildcards is used


From: ROMANO MASPERO
Subject: Re: [Bug-tar] Missing files when option --wildcards is used
Date: Thu, 11 Dec 2014 16:18:15 +0000

On Thursday 11 of December 2014 09:35:00 Pavel Raiskup wrote:
> Thanks for the report, however this is not reproducible on my GNU/Linux box.

Yes, I'm aware this does not happen on x86 platforms, but I've seen it on 
Solaris SPARC and on HP-UX IA64.

> Would you be able to use the debugger and see, where the problem actually is? 
>  
> You could start at 'read_and' function and than step over 'decode_header' and 
> see why the process skips 'do_something()' call.

Yes, I did a bit of debugging and spotted the issue. The problem is in the 
ISFOUND macro, defined in common.h .

The macro is defined like this:

#define ISFOUND(c) ((occurrence_option == 0) ? (c)->found_count : \
                    (c)->found_count == occurrence_option)

The problem is, on my compiler, if I do something like:

bool is_found = ISFOUND (cursor);

the compiler downgrades cursor->found_count to a bool type (8 bit), so if 
cursor->found_count is a multiple of 256 then ISFOUND returns 0.
I modified the macro this way:

#define ISFOUND(c) ((occurrence_option == 0) ? (c)->found_count > 0 : \
                    (c)->found_count == occurrence_option)

and the behaviour is now correct for me.
Also, the WASFOUND macro in the same file has a similar issue.

Regards,
 Romano




reply via email to

[Prev in Thread] Current Thread [Next in Thread]