Fix environment traversal when an envvar value is empty
authorSiddhesh Poyarekar <siddhesh@sourceware.org>
Thu, 19 Jan 2017 19:15:09 +0000 (00:45 +0530)
committerSiddhesh Poyarekar <siddhesh@sourceware.org>
Thu, 19 Jan 2017 19:15:09 +0000 (00:45 +0530)
commit41389c40499a083c59e68ba281ec87be567f2871
tree4d5ff86fc8a5216850383149fbe35944c32adb69
parent3a66b2b0637e439fb0e7a14c6c3d4c58190eec61
Fix environment traversal when an envvar value is empty

The condition when the value of an envvar is empty (not just '\0'),
the loop in tunables_init gets stuck infinitely because envp is not
incremented.  Fix that by always incrementing envp in the loop.

Added test case (tst-empty-env.c) verifies the fix when the source is
configured with --enable-hardcoded-path-in-tests, thanks Josh Stone for
providing the test case.  Verified on x86_64.

* elf/dl-tunables (get_next_env): Always advance envp.
* stdlib/tst-empty-env.c: New test case.
* stdlib/Makefile (tests): Use it.
ChangeLog
elf/dl-tunables.c
stdlib/Makefile
stdlib/tst-empty-env.c [new file with mode: 0644]