pg.ddx.io pgsql-committers@postgresql.org mailing list archivehelp / color / mirror / Atom feed
pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument 6+ messages / 1 participants [nested] [flat]
* pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument @ 2025-10-20 23:09 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 6+ messages in thread From: Michael Paquier @ 2025-10-20 23:09 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix POSIX compliance in pgwin32_unsetenv() for "name" argument pgwin32_unsetenv() (compatibility routine of unsetenv() on Windows) lacks the input validation that its sibling pgwin32_setenv() has. Without these checks, calling unsetenv() with incorrect names crashes on WIN32. However, invalid names should be handled, failing on EINVAL. This commit adds the same checks as setenv() to fail with EINVAL for a "name" set to NULL, an empty string, or if '=' is included in the value, per POSIX requirements. Like 7ca37fb0406b, backpatch down to v14. pgwin32_unsetenv() is defined on REL_13_STABLE, but with the branch going EOL soon and the lack of setenv() there for WIN32, nothing is done for v13. Author: Bryan Green <dbryan.green@gmail.com> Discussion: https://postgr.es/m/b6a1e52b-d808-4df7-87f7-2ff48d15003e@gmail.com Backpatch-through: 14 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/29b039e9166d5ad70b39375faceec2167343d355 Modified Files -------------- src/port/win32env.c | 7 +++++++ 1 file changed, 7 insertions(+) ^ permalink raw reply [nested|flat] 6+ messages in thread
* pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument @ 2025-10-20 23:09 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 6+ messages in thread From: Michael Paquier @ 2025-10-20 23:09 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix POSIX compliance in pgwin32_unsetenv() for "name" argument pgwin32_unsetenv() (compatibility routine of unsetenv() on Windows) lacks the input validation that its sibling pgwin32_setenv() has. Without these checks, calling unsetenv() with incorrect names crashes on WIN32. However, invalid names should be handled, failing on EINVAL. This commit adds the same checks as setenv() to fail with EINVAL for a "name" set to NULL, an empty string, or if '=' is included in the value, per POSIX requirements. Like 7ca37fb0406b, backpatch down to v14. pgwin32_unsetenv() is defined on REL_13_STABLE, but with the branch going EOL soon and the lack of setenv() there for WIN32, nothing is done for v13. Author: Bryan Green <dbryan.green@gmail.com> Discussion: https://postgr.es/m/b6a1e52b-d808-4df7-87f7-2ff48d15003e@gmail.com Backpatch-through: 14 Branch ------ REL_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/52b05b068615ca13bc9aab6bd316c9a81c2e4d9a Modified Files -------------- src/port/win32env.c | 7 +++++++ 1 file changed, 7 insertions(+) ^ permalink raw reply [nested|flat] 6+ messages in thread
* pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument @ 2025-10-20 23:09 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 6+ messages in thread From: Michael Paquier @ 2025-10-20 23:09 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix POSIX compliance in pgwin32_unsetenv() for "name" argument pgwin32_unsetenv() (compatibility routine of unsetenv() on Windows) lacks the input validation that its sibling pgwin32_setenv() has. Without these checks, calling unsetenv() with incorrect names crashes on WIN32. However, invalid names should be handled, failing on EINVAL. This commit adds the same checks as setenv() to fail with EINVAL for a "name" set to NULL, an empty string, or if '=' is included in the value, per POSIX requirements. Like 7ca37fb0406b, backpatch down to v14. pgwin32_unsetenv() is defined on REL_13_STABLE, but with the branch going EOL soon and the lack of setenv() there for WIN32, nothing is done for v13. Author: Bryan Green <dbryan.green@gmail.com> Discussion: https://postgr.es/m/b6a1e52b-d808-4df7-87f7-2ff48d15003e@gmail.com Backpatch-through: 14 Branch ------ REL_17_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/199a0ecbcff770f2c99bb4e46d4aff44003c3f98 Modified Files -------------- src/port/win32env.c | 7 +++++++ 1 file changed, 7 insertions(+) ^ permalink raw reply [nested|flat] 6+ messages in thread
* pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument @ 2025-10-20 23:09 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 6+ messages in thread From: Michael Paquier @ 2025-10-20 23:09 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix POSIX compliance in pgwin32_unsetenv() for "name" argument pgwin32_unsetenv() (compatibility routine of unsetenv() on Windows) lacks the input validation that its sibling pgwin32_setenv() has. Without these checks, calling unsetenv() with incorrect names crashes on WIN32. However, invalid names should be handled, failing on EINVAL. This commit adds the same checks as setenv() to fail with EINVAL for a "name" set to NULL, an empty string, or if '=' is included in the value, per POSIX requirements. Like 7ca37fb0406b, backpatch down to v14. pgwin32_unsetenv() is defined on REL_13_STABLE, but with the branch going EOL soon and the lack of setenv() there for WIN32, nothing is done for v13. Author: Bryan Green <dbryan.green@gmail.com> Discussion: https://postgr.es/m/b6a1e52b-d808-4df7-87f7-2ff48d15003e@gmail.com Backpatch-through: 14 Branch ------ REL_16_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/9666ce889e9aefebba50689c44121659092f2afd Modified Files -------------- src/port/win32env.c | 7 +++++++ 1 file changed, 7 insertions(+) ^ permalink raw reply [nested|flat] 6+ messages in thread
* pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument @ 2025-10-20 23:09 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 6+ messages in thread From: Michael Paquier @ 2025-10-20 23:09 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix POSIX compliance in pgwin32_unsetenv() for "name" argument pgwin32_unsetenv() (compatibility routine of unsetenv() on Windows) lacks the input validation that its sibling pgwin32_setenv() has. Without these checks, calling unsetenv() with incorrect names crashes on WIN32. However, invalid names should be handled, failing on EINVAL. This commit adds the same checks as setenv() to fail with EINVAL for a "name" set to NULL, an empty string, or if '=' is included in the value, per POSIX requirements. Like 7ca37fb0406b, backpatch down to v14. pgwin32_unsetenv() is defined on REL_13_STABLE, but with the branch going EOL soon and the lack of setenv() there for WIN32, nothing is done for v13. Author: Bryan Green <dbryan.green@gmail.com> Discussion: https://postgr.es/m/b6a1e52b-d808-4df7-87f7-2ff48d15003e@gmail.com Backpatch-through: 14 Branch ------ REL_15_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/4c3795c582dbe40dba7131170820c430dda57551 Modified Files -------------- src/port/win32env.c | 7 +++++++ 1 file changed, 7 insertions(+) ^ permalink raw reply [nested|flat] 6+ messages in thread
* pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument @ 2025-10-20 23:09 Michael Paquier <michael@paquier.xyz> 0 siblings, 0 replies; 6+ messages in thread From: Michael Paquier @ 2025-10-20 23:09 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org Fix POSIX compliance in pgwin32_unsetenv() for "name" argument pgwin32_unsetenv() (compatibility routine of unsetenv() on Windows) lacks the input validation that its sibling pgwin32_setenv() has. Without these checks, calling unsetenv() with incorrect names crashes on WIN32. However, invalid names should be handled, failing on EINVAL. This commit adds the same checks as setenv() to fail with EINVAL for a "name" set to NULL, an empty string, or if '=' is included in the value, per POSIX requirements. Like 7ca37fb0406b, backpatch down to v14. pgwin32_unsetenv() is defined on REL_13_STABLE, but with the branch going EOL soon and the lack of setenv() there for WIN32, nothing is done for v13. Author: Bryan Green <dbryan.green@gmail.com> Discussion: https://postgr.es/m/b6a1e52b-d808-4df7-87f7-2ff48d15003e@gmail.com Backpatch-through: 14 Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/5274f11c17493a4011156a99e44cb1a8f5f9692e Modified Files -------------- src/port/win32env.c | 7 +++++++ 1 file changed, 7 insertions(+) ^ permalink raw reply [nested|flat] 6+ messages in thread
end of thread, other threads:[~2025-10-20 23:09 UTC | newest] Thread overview: 6+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2025-10-20 23:09 pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument Michael Paquier <michael@paquier.xyz> 2025-10-20 23:09 pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument Michael Paquier <michael@paquier.xyz> 2025-10-20 23:09 pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument Michael Paquier <michael@paquier.xyz> 2025-10-20 23:09 pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument Michael Paquier <michael@paquier.xyz> 2025-10-20 23:09 pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument Michael Paquier <michael@paquier.xyz> 2025-10-20 23:09 pgsql: Fix POSIX compliance in pgwin32_unsetenv() for "name" argument Michael Paquier <michael@paquier.xyz>
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox