File U_NULL-pointer-dereference-in-XawAsciiSinkInitialize.patch of Package libXaw.7886

Git-commit: ba7321b6a52726cdb9964b82c5111518dc1f437d
Author: Tobias Stoeckmann <tobias@stoeckmann.org>
Subject: NULL pointer dereference in XawAsciiSinkInitialize
References: bsc#1098411
Patch-Mainline: Upstream
Signed-off-by: Michal Srb <msrb@suse.com>

The function XawAsciiSinkInitialize is prone to a NULL pointer
dereference if no font is available.

Even though a specific check for a NULL font exists, it is called
after GetGC(), which in turn would trigger the NPE in such a case.

Spotted by calling xmessage on a system with an incomplete x font setup:

$ xmessage -b text
Warning: Unable to load any usable ISO8859 font
Segmentation fault
$ _

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
 src/AsciiSink.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/AsciiSink.c b/src/AsciiSink.c
index d776895..1cccb1c 100644
--- a/src/AsciiSink.c
+++ b/src/AsciiSink.c
@@ -1704,10 +1704,10 @@ XawAsciiSinkInitialize(Widget request, Widget cnew,
 {
     AsciiSinkObject sink = (AsciiSinkObject)cnew;
 
-    GetGC(sink);
-
     if (!sink->ascii_sink.font) XtError("Aborting: no font found\n");
 
+    GetGC(sink);
+
     sink->ascii_sink.cursor_position = 0;
     sink->ascii_sink.laststate = XawisOff;
     sink->ascii_sink.cursor_x = sink->ascii_sink.cursor_y = 0;
-- 
2.13.6

openSUSE Build Service is sponsored by