https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118656

            Bug ID: 118656
           Summary: glibc getenv returns the wrong result sometimes if the
                    parameter contains '='
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: MikeSmith32564 at mail dot com
  Target Milestone: ---

#include <stdio.h>
#include <stdlib.h>

int main()
{
  setenv("STR1", "NAME=VALUE", 1);
  char* result = getenv("STR1=NAME");

  //expected "NULL", actual - "VALUE"
  printf(%s\n", (result ? result : "NULL"));
}



The getenv implementation doesn't check if the given parameter contains the '='
character, and so this can lead to results like this. More than one '=' used in
the getenv call can also lead to these results.

Reply via email to