Hi,

On Wed, Jul 25, 2007 at 05:31:46AM +0100, Martín Ferrari wrote:
> On 7/24/07, Martín Ferrari <[EMAIL PROTECTED]> wrote:
> 
> >When trying to solve this, I noticed that compiling with
> >DEB_BUILD_OPTIONS=noopt (i.e. -O0) the problem goes away... So, this
> >might be a gcc problem?
> 
> OK, I found the bug. It was a incorrect check after calling strtol.
> You should clear errno before calling. Now it compiles OK in sparc.
> 
> --- libcdio-0.78.2.orig/lib/iso9660/iso9660.c
> +++ libcdio-0.78.2/lib/iso9660/iso9660.c
> @@ -169,6 +169,7 @@
>     char num[10];                                                       \
>     memcpy(num, p_ldate->LT_FIELD, sizeof(p_ldate->LT_FIELD));          \
>     num[sizeof(p_ldate->LT_FIELD)+1] = '\0';                            \
> +    errno = 0;                                                         \
>     p_tm->TM_FIELD = strtol(num,                                        \
>                             (char **)NULL, 10)+ADD_CONSTANT;            \
>     if (0 != errno) return false;                                       \

At first sight (i currently lack time to look further), that looks sane. 
I just forwarded your message to libcdio's upstream author. I hope I'll 
be able to upload a new libcdio package soon.


Cheers,

Nicolas

Reply via email to