@@ -96,7 +96,7 @@ static int parse_opt(int argc, char *argv[])
96
96
while ((opt = getopt (argc , argv , optString )) != -1 ) {
97
97
switch (opt ) {
98
98
case 'i' :
99
- ret = atoi (optarg );
99
+ ret = strtol (optarg , NULL , 10 );
100
100
if (ret <= 0 || ret >=1000 ) {
101
101
pr_err ("'-i' require integer between [1-999]\n" );
102
102
return - EINVAL ;
@@ -105,7 +105,7 @@ static int parse_opt(int argc, char *argv[])
105
105
pr_dbg ("Period is %lu\n" , period );
106
106
break ;
107
107
case 't' :
108
- ret = atoi (optarg );
108
+ ret = strtol (optarg , NULL , 10 );
109
109
if (ret <= 0 ) {
110
110
pr_err ("'-t' require integer greater than 0\n" );
111
111
return - EINVAL ;
@@ -169,8 +169,10 @@ static int create_trace_file_dir(char *dir)
169
169
p -> tm_mday , p -> tm_hour , p -> tm_min , p -> tm_sec );
170
170
if (ret > TIME_STR_LEN )
171
171
printf ("WARN: time_str may be truncated\n" );
172
- } else
173
- snprintf (time_str , TIME_STR_LEN , "00000000-000000" );
172
+ } else {
173
+ if (snprintf (time_str , TIME_STR_LEN , "00000000-000000" ) >= TIME_STR_LEN )
174
+ printf ("WARN: time_str is truncated\n\n" );
175
+ }
174
176
175
177
pr_info ("start tracing at %s\n" , time_str );
176
178
@@ -185,7 +187,7 @@ static int create_trace_file_dir(char *dir)
185
187
186
188
ret = snprintf (dir , TRACE_FILE_DIR_LEN , "%s%s" ,
187
189
TRACE_FILE_ROOT , time_str );
188
- if (ret < ( strlen ( TRACE_FILE_ROOT ) + strlen ( time_str )) )
190
+ if (ret >= TRACE_FILE_DIR_LEN )
189
191
printf ("WARN: trace file dir name is truncated\n" );
190
192
if (stat (dir , & st )) {
191
193
err = mkdir (dir , 0644 );
@@ -231,7 +233,10 @@ static int create_reader(reader_struct * reader, uint32_t cpu)
231
233
{
232
234
char trace_file_name [TRACE_FILE_NAME_LEN ];
233
235
234
- snprintf (reader -> dev_name , DEV_PATH_LEN , "/dev/%s%u" , dev_prefix , cpu );
236
+ if (snprintf (reader -> dev_name , DEV_PATH_LEN , "/dev/%s%u" , dev_prefix , cpu )
237
+ >= DEV_PATH_LEN )
238
+ printf ("WARN: device name is truncated\n" );
239
+
235
240
reader -> param .cpuid = cpu ;
236
241
237
242
reader -> dev_fd = open (reader -> dev_name , O_RDWR );
@@ -254,8 +259,9 @@ static int create_reader(reader_struct * reader, uint32_t cpu)
254
259
cpu , reader -> param .sbuf -> magic , reader -> param .sbuf -> ele_num ,
255
260
reader -> param .sbuf -> ele_size );
256
261
257
- snprintf (trace_file_name , TRACE_FILE_NAME_LEN , "%s/%d" , trace_file_dir ,
258
- cpu );
262
+ if (snprintf (trace_file_name , TRACE_FILE_NAME_LEN , "%s/%d" , trace_file_dir ,
263
+ cpu ) >= TRACE_FILE_NAME_LEN )
264
+ printf ("WARN: trace file name is truncated\n" );
259
265
reader -> param .trace_fd = open (trace_file_name ,
260
266
O_WRONLY | O_CREAT | O_TRUNC , 0644 );
261
267
if (!reader -> param .trace_fd ) {
0 commit comments