Module: Mesa
Branch: master
Commit: 21e271024d8e050b75361c2da2e5783100f2e87b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=21e271024d8e050b75361c2da2e5783100f2e87b

Author: Emil Velikov <[email protected]>
Date:   Mon Sep 18 11:29:21 2017 +0100

swr/rast: do not crash on NULL strings returned by getenv

The current convenience function GetEnv feeds the results of getenv
directly into std::string(). That is a bad idea, since the variable
may be unset, thus we feed NULL into the C++ construct.

The latter of which is not allowed and leads to a crash.

v2: Better variable name, implicit char* -> std::string conversion (Eric)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101832
Fixes: a25093de718 ("swr/rast: Implement JIT shader caching to disk")
Cc: Tim Rowley <[email protected]>
Cc: Laurent Carlier <[email protected]>
Cc: Bernhard Rosenkraenzer <[email protected]>
[Emil Velikov: make an actual commit from the misc diff]
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Eric Engestrom <[email protected]> (v1)
Reviewed-by: Laurent Carlier <[email protected]> (v1)

---

 src/gallium/drivers/swr/rasterizer/core/utils.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/swr/rasterizer/core/utils.h 
b/src/gallium/drivers/swr/rasterizer/core/utils.h
index b096d2120c..c926f6ad7f 100644
--- a/src/gallium/drivers/swr/rasterizer/core/utils.h
+++ b/src/gallium/drivers/swr/rasterizer/core/utils.h
@@ -365,7 +365,8 @@ static INLINE std::string GetEnv(const std::string& 
variableName)
     output.resize(valueSize - 1); // valueSize includes null, output.resize() 
does not
     GetEnvironmentVariableA(variableName.c_str(), &output[0], valueSize);
 #else
-    output = getenv(variableName.c_str());
+    char *env = getenv(variableName.c_str());
+    output = env ? env : "";
 #endif
 
     return output;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to