@@ -189,7 +189,9 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin
189189 printVersionFlag (program );
190190 return STATUS_OK_EXIT ;
191191 case 's' :
192- assert (optarg ); /* please clang analyzer, cause optarg can be NULL in the 'u' case */
192+ if (!optarg )
193+ return STATUS_ERROR_EXIT ;
194+
193195 if (String_eq (optarg , "help" )) {
194196 for (int j = 1 ; j < LAST_PROCESSFIELD ; j ++ ) {
195197 const char * name = Process_fields [j ].name ;
@@ -214,7 +216,9 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin
214216 }
215217 break ;
216218 case 'd' :
217- assert (optarg );
219+ if (!optarg )
220+ return STATUS_ERROR_EXIT ;
221+
218222 if (sscanf (optarg , "%16d" , & (flags -> delay )) == 1 ) {
219223 if (flags -> delay < 1 )
220224 flags -> delay = 1 ;
@@ -226,7 +230,9 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin
226230 }
227231 break ;
228232 case 'n' :
229- assert (optarg );
233+ if (!optarg )
234+ return STATUS_ERROR_EXIT ;
235+
230236 if (sscanf (optarg , "%16d" , & flags -> iterationsRemaining ) == 1 ) {
231237 if (flags -> iterationsRemaining <= 0 ) {
232238 fprintf (stderr , "Error: maximum iteration count must be positive.\n" );
@@ -310,7 +316,9 @@ static CommandLineStatus parseArguments(int argc, char** argv, CommandLineSettin
310316 break ;
311317 }
312318 case 'F' :
313- assert (optarg );
319+ if (!optarg )
320+ return STATUS_ERROR_EXIT ;
321+
314322 if (optarg [0 ] == '\0' || optarg [0 ] == '|' ) {
315323 fprintf (stderr , "Error: invalid filter value \"%s\".\n" , optarg );
316324 return STATUS_ERROR_EXIT ;
0 commit comments