C and C++ Binaries


BADFUNC.TIME_H : Use of <time.h> Time/Date Function

Summary

A use of one of the functions defined in <time.h>: asctime(), asctime_r(), clock(), clock_getres(), clock_gettime(), clock_settime(), ctime(), ctime_r(), difftime(), getdate(), gmtime(), gmtime_r(), localtime(), localtime_r(), mktime(), nanosleep(), strftime(), strptime(), time(), timer_create(), timer_delete(), timer_gettime(), timer_getoverrun(), timer_settime(), tzset().

These functions are associated with unspecified, undefined, and implementation-defined behaviors.

Properties

Class Name Use of <time.h> Time/Date Function
Significance style
Mnemonic BADFUNC.TIME_H
Categories
MisraC2023 MisraC2023:21.10 The Standard Library time and date functions shall not be used
Misra2012 Misra2012:21.10 The Standard Library time and date functions shall not be used
Misra2004 Misra2004:20.12 The time handling functions of library <time.h> shall not be used
AUTOSARC++14 AUTOSARC++14:M18-0-4 The time handling functions of library <ctime> shall not be used.
MisraC++2008 MisraC++2008:18-0-4 The time handling functions of library <ctime> shall not be used.
CWE CWE:676 Use of Potentially Dangerous Function
  CWE:758 Reliance on Undefined, Unspecified, or Implementation-Defined Behavior
CERT-C CERT-C:MSC33-C Do not pass invalid data to the asctime() function
JSF++ JSF++:25 The time handling functions of library <time.h> shall not be used.
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Use of <time.h> Time/Date Function"

Example

#include <time.h>
        
void long_running_func(void);

clock_t instrument_my_code(void){
  clock_t t;
  t = clock();        /* 'Use of <time.h> Time/Date Function' warning issued here */
  long_running_func();
  return clock() - t; /* 'Use of <time.h> Time/Date Function' warning issued here */
}

Relevant Configuration File Parameters

This class is implemented using a BAD_FUNCTION_* rule set in the general template configuration file.

The following configuration file parameters affect checks for this warning class.