summaryrefslogtreecommitdiff
path: root/src/sm_manager.c
diff options
context:
space:
mode:
authorAlan Coopersmith <Alan.Coopersmith@sun.com>2006-03-17 03:05:32 +0000
committerAlan Coopersmith <Alan.Coopersmith@sun.com>2006-03-17 03:05:32 +0000
commitc46e8ae80540713ec24fd6d1eea68744937ef158 (patch)
tree12b6d1dba219dc5d665ec43bcded39661d13e791 /src/sm_manager.c
parent6842e89f85b1fa30344e2bf3d28e51dbfd978370 (diff)
Specs say SmsInitialize & SmcOpenConnection return NULL terminated stringsXORG-7_0_99_901
in errorStringRet, but were just calling strncpy and not making sure strings were NULL terminated if errorLength wasn't long enough. (Noticed while evaluating Coverity ids 196 & 201.)
Diffstat (limited to 'src/sm_manager.c')
-rw-r--r--src/sm_manager.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/sm_manager.c b/src/sm_manager.c
index 68cabcd..df9c221 100644
--- a/src/sm_manager.c
+++ b/src/sm_manager.c
@@ -1,3 +1,4 @@
+/* $XdotOrg: $ */
/* $Xorg: sm_manager.c,v 1.4 2001/02/09 02:03:30 xorgcvs Exp $ */
/*
@@ -130,8 +131,12 @@ char *errorStringRet;
if (!newClientProc)
{
- strncpy (errorStringRet,
- "The SmsNewClientProc callback can't be NULL", errorLength);
+ if (errorStringRet && errorLength > 0) {
+ strncpy (errorStringRet,
+ "The SmsNewClientProc callback can't be NULL",
+ errorLength);
+ errorStringRet[errorLength - 1] = '\0';
+ }
return (0);
}
@@ -150,9 +155,12 @@ char *errorStringRet;
NULL /* IceIOErrorProc */
)) < 0)
{
- strncpy (errorStringRet,
- "Could not register XSMP protocol with ICE", errorLength);
-
+ if (errorStringRet && errorLength > 0) {
+ strncpy (errorStringRet,
+ "Could not register XSMP protocol with ICE",
+ errorLength);
+ errorStringRet[errorLength - 1] = '\0';
+ }
return (0);
}
}