[PATCH] ui/sdl2: Check return value from g_setenv()

Peter Maydell posted 1 patch 2 years, 9 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210809161424.32355-1-peter.maydell@linaro.org
Maintainers: Gerd Hoffmann <kraxel@redhat.com>
ui/sdl2.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] ui/sdl2: Check return value from g_setenv()
Posted by Peter Maydell 2 years, 9 months ago
Setting environment variables can fail; check the return value
from g_setenv() and bail out if we couldn't set SDL_VIDEODRIVER.

Fixes: Coverity 1458798
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
I followed existing practice in this function for how it
deals with errors (ie, fprintf to stderr and exit).
---
 ui/sdl2.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ui/sdl2.c b/ui/sdl2.c
index 36d9010cb6c..17c0ec30ebf 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -817,7 +817,10 @@ static void sdl2_display_init(DisplayState *ds, DisplayOptions *o)
      * This is a bit hackish but saves us from bigger problem.
      * Maybe it's a good idea to fix this in SDL instead.
      */
-    g_setenv("SDL_VIDEODRIVER", "x11", 0);
+    if (!g_setenv("SDL_VIDEODRIVER", "x11", 0)) {
+        fprintf(stderr, "Could not set SDL_VIDEODRIVER environment variable\n");
+        exit(1);
+    }
 #endif
 
     if (SDL_Init(SDL_INIT_VIDEO)) {
-- 
2.20.1


Re: [PATCH] ui/sdl2: Check return value from g_setenv()
Posted by Gerd Hoffmann 2 years, 9 months ago
  Hi,

> Setting environment variables can fail; check the return value
> from g_setenv() and bail out if we couldn't set SDL_VIDEODRIVER.

Hmm, looking at the comment I'm wondering whenever we maybe should just
drop the setenv (after 6.1).  It's quite old, I doubt svgalib talking
directly to the hardware is still a thing these days, and we have the
x11 -> wayland shift happening ...

take care,
  Gerd


Re: [PATCH] ui/sdl2: Check return value from g_setenv()
Posted by Gerd Hoffmann 2 years, 9 months ago
On Mon, Aug 09, 2021 at 05:14:24PM +0100, Peter Maydell wrote:
> Setting environment variables can fail; check the return value
> from g_setenv() and bail out if we couldn't set SDL_VIDEODRIVER.
> 
> Fixes: Coverity 1458798
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I followed existing practice in this function for how it
> deals with errors (ie, fprintf to stderr and exit).
> ---

Queued for 6.1 (given that the "drop setenv altogether" idea clearly is
6.2 material).

thanks,
  Gerd