Launchpad has imported 3 comments from the remote bug at
http://sourceware.org/bugzilla/show_bug.cgi?id=3944.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2007-01-30T21:05:24+00:00 Vassilis Pandis wrote:

Hello,

this is a bug originally reported at https://bugs.launchpad.net/bugs/50563 . An
Ubuntu user reported the following:

"This segfaults on Ubuntu Dapper:

#define _XOPEN_SOURCE
#include <time.h>
int main() {
  struct tm tm;
  strptime("2004", "%Y", &tm); /* Segfault. */
  return 0;
}

This does not:

#define _XOPEN_SOURCE
#include <time.h>
int main() {
  struct tm tm;
  strptime("2004-01-01", "%Y-%m-%d", &tm); /* OK. */
  strptime("2004-01", "%Y-%m", &tm); /* OK. */
  return 0;
}

Internally, strptime() sets up a "struct tm" when parsing the date string. If
both the month and day-of-month are not present, two fields in that struct are
left uninitialized, and the segfault occurs when the uninitialized values are
used in an array lookup in time/strptime_l.c:day_of_the_week().

I have a patch for this, but cannot be sure that it works, because I don't have
enough disk space or CPU time for a glibc build."


Unfortunately, we haven't been able to contact the user for a patch. At any
rate, it would be nice if this were fixed. Thanks!

Reply at: https://bugs.launchpad.net/glibc/+bug/50563/comments/5

------------------------------------------------------------------------
On 2007-02-09T01:45:01+00:00 Drepper-fsp wrote:

Fixed in cvs.

Reply at: https://bugs.launchpad.net/glibc/+bug/50563/comments/7

------------------------------------------------------------------------
On 2007-07-12T14:50:53+00:00 Cvs-commit wrote:

Subject: Bug 3944

CVSROOT:        /cvs/glibc
Module name:    libc
Branch:         glibc-2_5-branch
Changes by:     [email protected]    2007-07-12 14:50:42

Modified files:
        .              : ChangeLog 
        time           : Makefile strptime_l.c 
Added files:
        time           : tst-strptime3.c 

Log message:
        2007-02-08  Jakub Jelinek  <[email protected]>
        
        [BZ #3944]
        * time/strptime_l.c (__strptime_internal): Set have_mon for
        %b/%B/%h.  Set have_mon and have_mday if tm_mon and tm_mday
        have been computed from tm_yday and tm_year.  Don't crash
        in day_of_the_week or day_of_the_year if not have_mon
        and tm_mon contains bogus value.
        * time/Makefile (tests): Add tst-strptime3.
        * time/tst-strptime3.c: New test.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/ChangeLog.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=1.10362.2.40&r2=1.10362.2.41
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/time/tst-strptime3.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=NONE&r2=1.1.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/time/Makefile.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=1.110&r2=1.110.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/time/strptime_l.c.diff?cvsroot=glibc&only_with_tag=glibc-2_5-branch&r1=1.7&r2=1.7.2.1


Reply at: https://bugs.launchpad.net/glibc/+bug/50563/comments/9


** Changed in: glibc
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/50563

Title:
  [fixed in 2.6] strptime() segfaults on certain date formats

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to