[X2Go-Commits] [nx-libs] 109/219: xkb: Use snprintf to measure string lengths instead of manual strlen math

git-admin at x2go.org git-admin at x2go.org
Sat Sep 28 12:10:32 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit 054e906f6059366150bb7426973542203c8a0e4c
Author: Ulrich Sibiller <uli42 at gmx.de>
Date:   Fri Jun 21 10:57:09 2019 +0200

    xkb: Use snprintf to measure string lengths instead of manual strlen math
    
      commit a4a2e814d5d0e6152307a301eda1d6fc1c555aaa
      Author: Alan Coopersmith <alan.coopersmith at oracle.com>
      Date:   Sun Feb 13 21:36:02 2011 -0800
    
        xkb: Use snprintf to measure string lengths instead of manual strlen math
    
        Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
        Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
        Reviewed-by: Daniel Stone <daniel at fooishbar.org>
---
 nx-X11/programs/Xserver/xkb/ddxLoad.c  | 21 +++++++++++----------
 nx-X11/programs/Xserver/xkb/maprules.c |  3 +--
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/nx-X11/programs/Xserver/xkb/ddxLoad.c b/nx-X11/programs/Xserver/xkb/ddxLoad.c
index 306a3530f..bff69196f 100644
--- a/nx-X11/programs/Xserver/xkb/ddxLoad.c
+++ b/nx-X11/programs/Xserver/xkb/ddxLoad.c
@@ -404,15 +404,16 @@ FILE *	file;
                 &&(!isalpha(xkm_output_dir[0]) || xkm_output_dir[1]!=':')
 #endif
                 ) {
-	    if (strlen(XkbBaseDirectory)+strlen(xkm_output_dir)
-		     +strlen(mapName)+6 <= PATH_MAX)
-	    {
-	        sprintf(buf,"%s/%s%s.xkm",XkbBaseDirectory,
-					xkm_output_dir,mapName);
-	    }
+	     if (snprintf(buf, PATH_MAX, "%s/%s%s.xkm", XkbBaseDirectory,
+                           xkm_output_dir, mapName) >= PATH_MAX)
+	          buf[0] = '\0';
+	}
+	else
+	{
+	      if (snprintf(buf, PATH_MAX, "%s%s.xkm", xkm_output_dir, mapName)
+		  >= PATH_MAX)
+                  buf[0] = '\0';
 	}
-	else if (strlen(xkm_output_dir)+strlen(mapName)+5 <= PATH_MAX)
-	    sprintf(buf,"%s%s.xkm",xkm_output_dir,mapName);
 	if (buf[0] != '\0')
 	    file= fopen(buf,"rb");
 	else file= NULL;
@@ -505,9 +506,9 @@ XkbRF_RulesPtr	rules;
 	sprintf(buf,"rules/%s",rules_name);
     }
     else {
-	if (strlen(XkbBaseDirectory)+strlen(rules_name)+8 > PATH_MAX)
+	if (snprintf(buf, PATH_MAX, "%s/rules/%s", XkbBaseDirectory, rules_name)
+	    >= PATH_MAX)
 	    return False;
-        sprintf(buf,"%s/rules/%s",XkbBaseDirectory,rules_name);
     }
     if ((file= fopen(buf,"r"))==NULL)
 	return False;
diff --git a/nx-X11/programs/Xserver/xkb/maprules.c b/nx-X11/programs/Xserver/xkb/maprules.c
index af6c112fe..6bc7e4022 100644
--- a/nx-X11/programs/Xserver/xkb/maprules.c
+++ b/nx-X11/programs/Xserver/xkb/maprules.c
@@ -953,9 +953,8 @@ Bool		ok;
     if ((!base)||(!rules))
 	return False;
     if (locale) {
-	if (strlen(base)+strlen(locale)+2 > PATH_MAX)
+        if (snprintf(buf, PATH_MAX, "%s-%s", base, locale) >= PATH_MAX)
 	    return False;
-	sprintf(buf,"%s-%s", base, locale);
     }
     else {
 	if (strlen(base)+1 > PATH_MAX)

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list