Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Generated Content

This page is automatically generated from the "Automated Detection" sections in the individual guidelines. Do not modify this page directly.

Version number:
v8.1

C checkers

Guideline

0160

MSC15-C. Do not depend on undefined behavior

0179 (U)

DCL11-C. Understand the type issues associated with variadic functions

0179 (U)

FIO00-C. Take care when creating format strings

0180 (C99)

FIO00-C. Take care when creating format strings

0184

DCL10-C. Maintain the contract between the writer and caller of variadic functions

0184 (U)

DCL11-C. Understand the type issues associated with variadic functions

0184 (U)

FIO00-C. Take care when creating format strings

0185

DCL10-C. Maintain the contract between the writer and caller of variadic functions

0185(U)

DCL11-C. Understand the type issues associated with variadic functions

0185 (U)

FIO00-C. Take care when creating format strings

0186 (U)

DCL11-C. Understand the type issues associated with variadic functions

0190 (U)

FIO00-C. Take care when creating format strings

0190 (U)

DCL11-C. Understand the type issues associated with variadic functions

0191 (U)

DCL11-C. Understand the type issues associated with variadic functions

0191 (U)

FIO00-C. Take care when creating format strings

0192 (U)

DCL11-C. Understand the type issues associated with variadic functions

0192 (U)

FIO00-C. Take care when creating format strings

0193 (U)

DCL11-C. Understand the type issues associated with variadic functions

0193 (U)

FIO00-C. Take care when creating format strings

0194 (U).

FIO00-C. Take care when creating format strings

0194 (U)

DCL11-C. Understand the type issues associated with variadic functions

0195 (U)

DCL11-C. Understand the type issues associated with variadic functions

0195 (U).

FIO00-C. Take care when creating format strings

0196 (U)

FIO00-C. Take care when creating format strings

0196 (U)

DCL11-C. Understand the type issues associated with variadic functions

0197 (U)

DCL11-C. Understand the type issues associated with variadic functions

0197 (U)

FIO00-C. Take care when creating format strings

0198 (U)

DCL11-C. Understand the type issues associated with variadic functions

0198 (U)

FIO00-C. Take care when creating format strings

0199 (U)

DCL11-C. Understand the type issues associated with variadic functions

0199 (U)

FIO00-C. Take care when creating format strings

0200 (U)

DCL11-C. Understand the type issues associated with variadic functions

0200 (U).

FIO00-C. Take care when creating format strings

0201 (U)

FIO00-C. Take care when creating format strings

0201 (U)

DCL11-C. Understand the type issues associated with variadic functions

0202 (I)

FIO00-C. Take care when creating format strings

0202

MSC14-C. Do not introduce unnecessary platform dependencies

0206 (U)

DCL11-C. Understand the type issues associated with variadic functions

0206 (U)

FIO00-C. Take care when creating format strings

0206 (U)

INT00-C. Understand the data model used by your implementation(s)

0272 (I)

INT08-C. Verify that all integer values are in range

0273 (I)

INT08-C. Verify that all integer values are in range

0278

INT32-C. Ensure that operations on signed integers do not result in overflow

0285

MSC09-C. Character Encoding - Use Subset of ASCII for Safety

0286

MSC09-C. Character Encoding - Use Subset of ASCII for Safety

0287

MSC09-C. Character Encoding - Use Subset of ASCII for Safety

0288

MSC09-C. Character Encoding - Use Subset of ASCII for Safety

0289

MSC09-C. Character Encoding - Use Subset of ASCII for Safety

0290

INT02-C. Understand integer conversion rules

0291

INT02-C. Understand integer conversion rules

0296

INT32-C. Ensure that operations on signed integers do not result in overflow

0297

INT32-C. Ensure that operations on signed integers do not result in overflow

0299

MSC09-C. Character Encoding - Use Subset of ASCII for Safety

0309 (U)

INT11-C. Converting a pointer to integer or integer to pointer

0310

EXP11-C. Do not make assumptions regarding the layout of structures with bit-fields

0310

EXP39-C. Do not access a variable through a pointer of an incompatible type

0311

EXP05-C. Do not cast away a const qualification

0312

EXP32-C. Do not access a volatile object through a non-volatile reference

0400 U

EXP30-C. Do not depend on order of evaluation between sequence points

0401 U

EXP30-C. Do not depend on order of evaluation between sequence points

0402 U

EXP30-C. Do not depend on order of evaluation between sequence points

0403 U

EXP30-C. Do not depend on order of evaluation between sequence points

0428

MSC02-C. Avoid errors of omission

0431(C)

DCL13-C. Declare function parameters that are pointers to values not changed by the function as const

0432 (C)

STR04-C. Use plain char for characters in the basic character set

0434 (C)

DCL31-C. Declare identifiers before using them

0487

ARR36-C. Do not subtract or compare two pointers that do not refer to the same array

0488

EXP08-C. Ensure pointer arithmetic is used correctly

0499

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

0500

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

0501

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

0502

INT13-C. Use bitwise operators only on unsigned operands

0504

EXP34-C. Do not dereference null pointers

0505

EXP34-C. Do not dereference null pointers

0506

EXP34-C. Do not dereference null pointers

0536

MSC02-C. Avoid errors of omission

0537

MSC02-C. Avoid errors of omission

0556

STR30-C. Do not attempt to modify string literals

0556

STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator

0563 (C)

ARR34-C. Ensure that array types in expressions are compatible

0563

DCL07-C. Include the appropriate type information in function declarators

0597

MSC01-C. Strive for logical completeness

0601 (E)

ENV31-C. Do not rely on an environment pointer following an operation that may invalidate it

0625 (U)

DCL36-C. Do not declare an identifier with conflicting linkage classifications

0634 (I)

INT12-C. Do not make assumptions about the type of a plain int bit-field when used in an expression

0674 (C)

DCL35-C. Call functions with the correct number and type of arguments

0684 (C)

ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer

0686

ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer

0687

ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer

0688

ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer

0689

MSC07-C. Detect and remove dead code

0695

MEM02-C. Immediately cast the result of a memory allocation function call into a pointer to the allocated type

0697

EXP03-C. Do not assume the size of a structure is the sum of the sizes of its members

0722

INT09-C. Ensure enumeration constants map to unique values

0723

INT09-C. Ensure enumeration constants map to unique values

0752

STR05-C. Use pointers to const when referring to string literals

0753

STR05-C. Use pointers to const when referring to string literals

0777(U)

DCL02-C. Use visually distinct identifiers

0777 (U)

DCL32-C. Guarantee that mutually visible identifiers are unique

0779 (U)

DCL32-C. Guarantee that mutually visible identifiers are unique

0883

PRE06-C. Enclose header files in an inclusion guard

1051

ARR32-C. Ensure size arguments for variable length arrays are in a valid range

1253

MSC31-C. Ensure that return values are compared against the proper type

1280

DCL16-C. Use "L," not "l," to indicate a long value

1302

DCL31-C. Declare identifiers before using them

1312

STR36-C. Do not specify the bound of a character array initialized with a string literal

1460

MSC01-C. Strive for logical completeness

1470

MSC01-C. Strive for logical completeness

1472

MSC01-C. Strive for logical completeness

1504

DCL15-C. Declare file-scope objects or functions that do not need external linkage as static

1505

DCL15-C. Declare file-scope objects or functions that do not need external linkage as static

1510

ARR31-C. Use consistent array notation across all source files

1520

MEM05-C. Avoid large stack allocations

1890

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

1891

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

1892

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

1893

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

1894

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

1895

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

2002

MSC01-C. Strive for logical completeness

2004

MSC01-C. Strive for logical completeness

2008

MSC07-C. Detect and remove dead code

2050

DCL07-C. Include the appropriate type information in function declarators

2050

DCL31-C. Declare identifiers before using them

2051

DCL31-C. Declare identifiers before using them

2205

DCL04-C. Do not declare more than one variable per declaration

2547

DCL01-C. Do not reuse variable names in subscopes

2741 2742

DCL03-C. Use a static assertion to test the value of a constant expression

2771

ARR36-C. Do not subtract or compare two pointers that do not refer to the same array

2790 (C)

INT35-C. Evaluate integer expressions in a larger size before comparing or assigning to that size

2790

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

2791 (D)

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

2792 (A)

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

2793 (S)

INT34-C. Do not shift a negative number of bits or more bits than exist in the operand

2800

INT32-C. Ensure that operations on signed integers do not result in overflow

2814

EXP08-C. Ensure pointer arithmetic is used correctly

2830 (C)

INT33-C. Ensure that division and modulo operations do not result in divide-by-zero errors

2831 (D)

INT33-C. Ensure that division and modulo operations do not result in divide-by-zero errors

2832 (A)

INT33-C. Ensure that division and modulo operations do not result in divide-by-zero errors

2833 (S)

INT33-C. Ensure that division and modulo operations do not result in divide-by-zero errors

2834 (P)

INT33-C. Ensure that division and modulo operations do not result in divide-by-zero errors

2850 (C)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2851 (D)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2852 (A)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2853 (S)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2900 (C)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2901 (D)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2902 (A)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2903 (S)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2905 (C)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2906 (D)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2907 (A)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2908 (S)

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

2910 (C)

INT30-C. Ensure that unsigned integer operations do not wrap

2911 (D)

INT30-C. Ensure that unsigned integer operations do not wrap

2912 (A)

INT30-C. Ensure that unsigned integer operations do not wrap

2913 (S)

INT30-C. Ensure that unsigned integer operations do not wrap

2930

EXP08-C. Ensure pointer arithmetic is used correctly

2931

ARR38-C. Guarantee that library functions do not form invalid pointers

2961 (D)

EXP33-C. Do not reference uninitialized memory

2962 (A)

EXP33-C. Do not reference uninitialized memory

2963 (S)

EXP33-C. Do not reference uninitialized memory

2971 (D)

EXP33-C. Do not reference uninitialized memory

2972 (A)

EXP33-C. Do not reference uninitialized memory

3001

EXP37-C. Call functions with the correct number and type of arguments

3103

INT10-C. Do not assume a positive remainder when using the % operator

3110

MSC07-C. Detect and remove dead code

3110

MSC12-C. Detect and remove code that has no effect

3112

MSC07-C. Detect and remove dead code

3112

MSC12-C. Detect and remove code that has no effect

3120

DCL06-C. Use meaningful symbolic constants to represent literal values

3120

EXP07-C. Do not diminish the benefits of constants by assuming their values in expressions

3121

DCL06-C. Use meaningful symbolic constants to represent literal values

3122

DCL06-C. Use meaningful symbolic constants to represent literal values

3123

DCL06-C. Use meaningful symbolic constants to represent literal values

3131

DCL06-C. Use meaningful symbolic constants to represent literal values

3132

DCL06-C. Use meaningful symbolic constants to represent literal values

3195

MSC13-C. Detect and remove unused values

3196

MSC07-C. Detect and remove dead code

3197

MSC13-C. Detect and remove unused values

3198

MSC13-C. Detect and remove unused values

3199

MSC13-C. Detect and remove unused values

3200

EXP12-C. Do not ignore values returned by functions

3200

FIO04-C. Detect and handle input and output errors

3201

MSC07-C. Detect and remove dead code

3202

MSC07-C. Detect and remove dead code

3203

MSC07-C. Detect and remove dead code

3204

DCL00-C. Const-qualify immutable objects

3205

MSC07-C. Detect and remove dead code

3206

MSC07-C. Detect and remove dead code

3207

MSC07-C. Detect and remove dead code

3210

MSC07-C. Detect and remove dead code

3217

DCL30-C. Declare objects with appropriate storage durations

3219 .

MSC07-C. Detect and remove dead code

3225

DCL30-C. Declare objects with appropriate storage durations

3226

EXP10-C. Do not depend on the order of evaluation of subexpressions or the order in which side effects take place

3226

MSC02-C. Avoid errors of omission

3227

DCL00-C. Const-qualify immutable objects

3229

MSC07-C. Detect and remove dead code

3230

DCL30-C. Declare objects with appropriate storage durations

3232

DCL00-C. Const-qualify immutable objects

3302

INT30-C. Ensure that unsigned integer operations do not wrap

3303

INT30-C. Ensure that unsigned integer operations do not wrap

3304

INT30-C. Ensure that unsigned integer operations do not wrap

3305

EXP36-C. Do not convert pointers into more strictly aligned pointer types

3305

EXP39-C. Do not access a variable through a pointer of an incompatible type

3307

EXP06-C. Operands to the sizeof operator should not contain side effects

3307

MSC07-C. Detect and remove dead code

3314

MSC02-C. Avoid errors of omission

3326

MSC02-C. Avoid errors of omission

3328

MSC07-C. Detect and remove dead code

3334

DCL01-C. Do not reuse variable names in subscopes

3335

DCL07-C. Include the appropriate type information in function declarators

3335

DCL31-C. Declare identifiers before using them

3340

FLP30-C. Do not use floating-point variables as loop counters

3355

MSC07-C. Detect and remove dead code

3356

MSC07-C. Detect and remove dead code

3357

MSC07-C. Detect and remove dead code

3358

MSC07-C. Detect and remove dead code

3359

MSC07-C. Detect and remove dead code

3360

MSC07-C. Detect and remove dead code

3389

EXP00-C. Use parentheses for precedence of operation

3390

EXP00-C. Use parentheses for precedence of operation

3391

EXP00-C. Use parentheses for precedence of operation

3392

EXP00-C. Use parentheses for precedence of operation

3392

EXP13-C. Treat relational and equality operators as if they were nonassociative

3393

EXP00-C. Use parentheses for precedence of operation

3394

EXP00-C. Use parentheses for precedence of operation

3395

EXP00-C. Use parentheses for precedence of operation

3396

EXP00-C. Use parentheses for precedence of operation

3397

EXP00-C. Use parentheses for precedence of operation

3398

EXP00-C. Use parentheses for precedence of operation

3399

EXP00-C. Use parentheses for precedence of operation

3400

EXP00-C. Use parentheses for precedence of operation

3401

EXP00-C. Use parentheses for precedence of operation

3401

EXP13-C. Treat relational and equality operators as if they were nonassociative

3404

MSC07-C. Detect and remove dead code

3409

PRE02-C. Macro replacement lists should be parenthesized

3410

PRE01-C. Use parentheses within macros around parameter names

3412

PRE10-C. Wrap multistatement macros in a do-while loop

3412

PRE11-C. Do not conclude macro definitions with a semicolon

3413

PRE03-C. Prefer typedefs to defines for encoding types

3415

EXP02-C. Be aware of the short-circuit behavior of the logical AND and OR operators

3422

MSC07-C. Detect and remove dead code

3423

MSC07-C. Detect and remove dead code

3425

MSC07-C. Detect and remove dead code

3426

MSC07-C. Detect and remove dead code

3427

MSC07-C. Detect and remove dead code

3440

EXP31-C. Avoid side effects in assertions

3450

DCL07-C. Include the appropriate type information in function declarators

3453

PRE00-C. Prefer inline or static functions to function-like macros

3454

PRE31-C. Avoid side-effects in arguments to unsafe macros

3455

PRE31-C. Avoid side-effects in arguments to unsafe macros

3456

PRE31-C. Avoid side-effects in arguments to unsafe macros

3458

PRE10-C. Wrap multistatement macros in a do-while loop

3470

MSC07-C. Detect and remove dead code

3601

PRE07-C. Avoid using repeated question marks

3670

MEM05-C. Avoid large stack allocations

3673

DCL13-C. Declare function parameters that are pointers to values not changed by the function as const

3674

ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer

3680

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3681

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3682

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3683

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3684

ARR02-C. Explicitly specify array bounds, even if implicitly defined by an initializer

3685 (U)

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3686

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3688

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3689 (U)

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3690

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3692

ARR30-C. Do not form or use out of bounds pointers or array subscripts

3704

STR34-C. Cast characters to unsigned char before converting to larger integer sizes

3711

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3722

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3733

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3744

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3755

INT02-C. Understand integer conversion rules

3755

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3756

INT02-C. Understand integer conversion rules

3757

INT02-C. Understand integer conversion rules

3758

INT02-C. Understand integer conversion rules

3758

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3759

INT02-C. Understand integer conversion rules

3759

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3760

INT02-C. Understand integer conversion rules

3760

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3762

INT02-C. Understand integer conversion rules

3763

INT02-C. Understand integer conversion rules

3764

INT02-C. Understand integer conversion rules

3765

INT02-C. Understand integer conversion rules

3766

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3769

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3770

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3777

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3780

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3781

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3782

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3783

INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data

3788

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3850

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3863

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3911

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3922

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3933

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3944

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3955

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3966

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3977

INT07-C. Use only explicitly signed or unsigned char type for numeric values

3988

INT07-C. Use only explicitly signed or unsigned char type for numeric values

4050

INT07-C. Use only explicitly signed or unsigned char type for numeric values

4063

INT07-C. Use only explicitly signed or unsigned char type for numeric values

4111

EXP13-C. Treat relational and equality operators as if they were nonassociative

4112

EXP13-C. Treat relational and equality operators as if they were nonassociative

4113

EXP13-C. Treat relational and equality operators as if they were nonassociative

4117

FLP33-C. Convert integers to floating point for floating point operations

4118

FLP33-C. Convert integers to floating point for floating point operations

4119

FLP33-C. Convert integers to floating point for floating point operations

4123

FLP03-C. Detect and handle floating-point errors

4124

FLP03-C. Detect and handle floating-point errors

4125

FLP03-C. Detect and handle floating-point errors

4126

FLP03-C. Detect and handle floating-point errors

4127

FLP03-C. Detect and handle floating-point errors

4128

FLP03-C. Detect and handle floating-point errors

4130

INT13-C. Use bitwise operators only on unsigned operands

4131

INT13-C. Use bitwise operators only on unsigned operands

4140

DCL30-C. Declare objects with appropriate storage durations

4450

FLP34-C. Ensure that floating point conversions are within range of the new type

4451

FLP34-C. Ensure that floating point conversions are within range of the new type

4452

FLP34-C. Ensure that floating point conversions are within range of the new type

4453

FLP34-C. Ensure that floating point conversions are within range of the new type

4454

FLP34-C. Ensure that floating point conversions are within range of the new type

 

DCL34-C. Use volatile for data that cannot be cached

Secondary Analysis

DCL05-C. Use typedefs to improve code readability

Secondary analysis

PRE04-C. Do not reuse a standard header file name

Secondary Analysis

PRE08-C. Guarantee that header file names are unique

Secondary Analysis

PRE09-C. Do not replace secure functions with deprecated or obsolescent functions

special case of STR34

STR37-C. Arguments to character handling functions must be representable as an unsigned char

warncall fopen

FIO06-C. Create files with appropriate access permissions

warncall for fopen and fopen_s

FIO03-C. Do not make assumptions about fopen() and file creation

warncall for 'gets'

STR35-C. Do not copy data from an unbounded source to a fixed-length array

warncall for putenv

POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument

warncall for realloc

MEM03-C. Clear sensitive information stored in reusable resources

Warncall for scanf etc

INT05-C. Do not use input functions to convert character data if they cannot handle all possible inputs

warncall for signal

SIG00-C. Mask signals handled by noninterruptible signal handlers

warncall for signal

SIG01-C. Understand implementation-specific details regarding signal handler persistence

Warncall remove, rename, fopen, freopen

FIO01-C. Be careful using functions that use file names for identification

warncall tmpnam, tmpfile, mktemp, tmpnam_s

FIO43-C. Do not create temporary files in shared directories

Warncall -wc atoi, -wc atol

INT06-C. Use strtol() or a related function to convert a string token to an integer

Warncall -wc rand

MSC30-C. Do not use the rand() function for generating pseudorandom numbers

Warncall -wc remove

FIO08-C. Take care when calling remove() on an open file

Warncall -wc rename

FIO10-C. Take care when using the rename() function

Warncall -wc rewind

FIO07-C. Prefer fseek() to rewind()

Warncall -wc setbuf

FIO12-C. Prefer setvbuf() to setbuf()

Warncall -wc signal

SIG34-C. Do not call signal() from within interruptible signal handlers

Warncall -wc strcpy, -wc strcat, -wc strncpy, -wc strncat

STR07-C. Use the bounds-checking interfaces for remediation of existing string manipulation code

Warncall -wc system

ENV03-C. Sanitize the environment when invoking external programs

Warncall -wc system

ENV04-C. Do not call system() if you do not need a command processor

Warncall -wc vfork

POS33-C. Do not use vfork()

  • No labels