checksrc: ban gmtime/localtime
They're not thread-safe so they should not be used in libcurl code. Explictly enabled when deemed necessary and in examples and tests Reviewed-by: Nicolas Sterchele Closes #5732
This commit is contained in:
parent
5ae339971a
commit
2f72ad44fc
@ -1,2 +1,3 @@
|
|||||||
disable TYPEDEFSTRUCT
|
disable TYPEDEFSTRUCT
|
||||||
disable SNPRINTF
|
disable SNPRINTF
|
||||||
|
disable BANNEDFUNC
|
||||||
|
|||||||
@ -592,7 +592,8 @@ sub scanfile {
|
|||||||
|
|
||||||
# scan for use of banned functions
|
# scan for use of banned functions
|
||||||
if($l =~ /^(.*\W)
|
if($l =~ /^(.*\W)
|
||||||
(gets|
|
(gmtime|localtime|
|
||||||
|
gets|
|
||||||
strtok|
|
strtok|
|
||||||
v?sprintf|
|
v?sprintf|
|
||||||
(str|_mbs|_tcs|_wcs)n?cat|
|
(str|_mbs|_tcs|_wcs)n?cat|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@ -624,6 +624,7 @@ CURLcode Curl_gmtime(time_t intime, struct tm *store)
|
|||||||
/* thread-safe version */
|
/* thread-safe version */
|
||||||
tm = (struct tm *)gmtime_r(&intime, store);
|
tm = (struct tm *)gmtime_r(&intime, store);
|
||||||
#else
|
#else
|
||||||
|
/* !checksrc! disable BANNEDFUNC 1 */
|
||||||
tm = gmtime(&intime);
|
tm = gmtime(&intime);
|
||||||
if(tm)
|
if(tm)
|
||||||
*store = *tm; /* copy the pointed struct to the local copy */
|
*store = *tm; /* copy the pointed struct to the local copy */
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@ -65,6 +65,7 @@ int tool_debug_cb(CURL *handle, curl_infotype type,
|
|||||||
known_offset = 1;
|
known_offset = 1;
|
||||||
}
|
}
|
||||||
secs = epoch_offset + tv.tv_sec;
|
secs = epoch_offset + tv.tv_sec;
|
||||||
|
/* !checksrc! disable BANNEDFUNC 1 */
|
||||||
now = localtime(&secs); /* not thread safe but we don't care */
|
now = localtime(&secs); /* not thread safe but we don't care */
|
||||||
msnprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ",
|
msnprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ",
|
||||||
now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
|
now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
|
||||||
|
|||||||
@ -1 +1,2 @@
|
|||||||
disable TYPEDEFSTRUCT
|
disable TYPEDEFSTRUCT
|
||||||
|
disable BANNEDFUNC
|
||||||
|
|||||||
@ -119,6 +119,7 @@ void logmsg(const char *msg, ...)
|
|||||||
known_offset = 1;
|
known_offset = 1;
|
||||||
}
|
}
|
||||||
sec = epoch_offset + tv.tv_sec;
|
sec = epoch_offset + tv.tv_sec;
|
||||||
|
/* !checksrc! disable BANNEDFUNC 1 */
|
||||||
now = localtime(&sec); /* not thread safe but we don't care */
|
now = localtime(&sec); /* not thread safe but we don't care */
|
||||||
|
|
||||||
msnprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld",
|
msnprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user