Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A programmer should never try to modify the value returned by the getenv() function. Because the pointer might be used by some other program. If it's necessary to manipulate the return value of getenv().

None-Compliant Code Example

Code Block
bgColor#FFcccc
int foo()
{
    char *env;
    env = getenv("TEST_ENV");
    env[0] = 'a';

    /*doDo some more things*/

    return 0;
}


Compliant Code Solution

Code Block
bgColor#ccccFF

int foo()
{
    char *env;
    char *copy_of_env;

    env = getenv("TEST_ENV");
    copy_of_env = malloc( (strlen(env)+1) * sizeof(char) );
(insert code here)    strncpy(copy_of_env, env, strlen(env));
    
    copy_of_env[0] = 'a';
    
    /*Do some more things*/

    return 0;
}