[PATCH libICE 3/3] Make sure string is never NULL

Eric Engestrom eric.engestrom at imgtec.com
Fri Jul 7 10:23:48 UTC 2017


`error_message` is passed in to strncpy() without any check, which
doesn't handle NULL itself, so let's make it a valid empty string in
cases where it was NULL.

Signed-off-by: Eric Engestrom <eric.engestrom at imgtec.com>
---
 src/process.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/process.c b/src/process.c
index 1ee1ceb..30d073f 100644
--- a/src/process.c
+++ b/src/process.c
@@ -704,6 +704,11 @@ ProcessError (
 		invokeHandler = 1;
 	    }
 
+			if (!errorStr)
+			{
+				errorStr = strdup("");
+			}
+
 	    errorReply->type = ICE_CONNECTION_ERROR;
 	    errorReply->error_message = errorStr;
 	}
@@ -794,6 +799,11 @@ ProcessError (
 		invokeHandler = 1;
 	    }
 
+			if (!errorStr)
+			{
+				errorStr = strdup("");
+			}
+
 	    errorReply->type = ICE_PROTOCOL_ERROR;
 	    errorReply->error_message = errorStr;
 	}
@@ -1270,7 +1280,7 @@ ProcessAuthRequired (
 	}
 
 	if (asprintf (&returnErrorString, "%s%s", prefix, errorString) == -1)
-	    returnErrorString = NULL;
+	    returnErrorString = strdup("");
 	free (errorString);
 
 	if (iceConn->connect_to_you)
@@ -1697,7 +1707,7 @@ ProcessAuthNextPhase (
 	}
 
 	if (asprintf (&returnErrorString, "%s%s", prefix, errorString) == -1)
-	    returnErrorString = NULL;
+	    returnErrorString = strdup("");
 	free (errorString);
 
 	if (iceConn->connect_to_you)
-- 
Cheers,
  Eric



More information about the xorg-devel mailing list