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;                                       \


--
Martín Ferrari

Reply via email to