Thread overview
[Issue 24549] std.process.environment.get(null) segfaults
May 14
Dlang Bot
May 16
Dlang Bot
May 27
Dlang Bot
May 13
https://issues.dlang.org/show_bug.cgi?id=24549

Steven Schveighoffer <schveiguy@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |schveiguy@gmail.com

--- Comment #1 from Steven Schveighoffer <schveiguy@gmail.com> ---
The underlying issue is that `std.internal.cstring.tempCString` returns a `null` pointer if the input string is an empty string with a null pointer.

This is surprising, and seems to have been done as a hack to work around issue 14980

I would not expect to get a null pointer when passing in an empty string, I'd expect an empty string. This has a seemingly "unforseen" effect on code that is accepting of a string, and blindly passes to `tempCString` for calling a C lib -- if the library function doesn't handle null pointers, or handles them differently than non-null empty strings, then it may crash or do something unexpected.

The Linux `getenv` function is crashing on the null pointer (BTW, this does not
happen on MacOS).

--
May 14
https://issues.dlang.org/show_bug.cgi?id=24549

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@schveiguy updated dlang/phobos pull request #9002 "Fix issue 24549" fixing this issue:

- Fix bugzilla issue 24549 -- environment.get(null) segfaults on Linux

https://github.com/dlang/phobos/pull/9002

--
May 16
https://issues.dlang.org/show_bug.cgi?id=24549

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/phobos pull request #9002 "Fix issue 24549 - std.process.environment.get(null) segfaults" was merged into stable:

- 6ea12cf3a4b2fb6e3e962a87e1954b949f349a79 by Steven Schveighoffer:
  Fix bugzilla issue 24549 -- environment.get(null) segfaults on Linux

https://github.com/dlang/phobos/pull/9002

--
May 27
https://issues.dlang.org/show_bug.cgi?id=24549

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/phobos pull request #9006 "merge stable" was merged into master:

- 82e8e32b2ff546a86eb3683b1af4ecc5939f633e by Steven Schveighoffer:
  Fix bugzilla issue 24549 -- environment.get(null) segfaults on Linux

https://github.com/dlang/phobos/pull/9006

--