Bugs item #1358718, was opened at 2005-11-16 22:34
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1358718&group_id=8032

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Runtime System
Group: 6.4.1
Status: Open
Resolution: None
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: undefined behavior in time_str (RtsUtils.c)

Initial Comment:
code looks like this:

char *
time_str(void)
{
    static time_t now = 0;
    static char nowstr[26];

    if (now == 0) {
        time(&now);
        strcpy(nowstr, ctime(&now));
        strcpy(nowstr+16,nowstr+19); /* this is undefined
behavior as buffers overlap, probably 
will show undesired effects if compiler utilise
 copy optimisations */
        nowstr[21] = '\0';
    }
    return nowstr;
}

corrected should look like this:

char *
time_str(void)
{
    static time_t now = 0;
    static char nowstr[26];

    if (now == 0) {
        time(&now);
/*      ctime_r(&now,nowstr); this is better if available */
        strcpy(nowstr,ctime(&now));
        memmove(nowstr+16,nowstr+19,7);
 }
    return nowstr;
}

--
[EMAIL PROTECTED] , Branimir Maksimovic


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1358718&group_id=8032
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to