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

Compare with Current View Page History

« Previous Version 21 Next »

This section identifies rules and recommendations related to the functions defined in C99 Section 7.20.4, "Communication with the environment".

Recommendations

ENV00-A. Do not store the pointer to the string returned by getenv()

ENV01-A. Do not make assumptions about the size of an environment variable

ENV02-A. Beware of multiple environment variables with the same name

ENV03-A. Sanitize the environment before invoking external programs

ENV04-A. Do not call the system() or popen() functions

Rules

ENV30-C. Do not modify the string returned by getenv()

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

ENV32-C. Do not call the exit() function more than once

ENV33-C. Do not call the longjmp function to terminate a call to a function registered by atexit()

ENV34-C. Do not call putenv() with an automatic variable as the argument (POSIX)

ENV35-C. Do not call longjmp() from inside a signal handler

Risk Assessment Summary

Recommendations

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

ENV00-A

1 (low)

1 (unlikely)

2 (medium)

P2

L3

ENV01-A

1 (low)

1 (unlikely)

3 (low)

P3

L3

ENV02-A

2 (nedium)

1 (unlikely)

3 (low)

P6

L2

ENV03-A

2 (medium)

2 (probable)

2 (medium)

P8

L2

ENV04-A

3 (high)

2 (probable)

2 (medium)

P12

L2

Rules

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

ENV30-C

1 (low)

1 (unlikely)

3 (low)

P3

L3

ENV31-C

1 (low)

1 (unlikely)

3 (low)

P3

L3

ENV32-C

1 (low)

1 (unlikely)

3 (low)

P3

L3

ENV33-C

1 (low)

1 (unlikely)

3 (low)

P3

L3

ENV34-C

3 (high)

1 (unlikely)

1 (high)

P3

L3

ENV35-C

2 (medium)

1 (unlikely)

3 (low)

P6

L2

  • No labels