[68680] trunk/base/src/pextlib1.0/Pextlib.c

jmr at macports.org jmr at macports.org
Wed Jun 9 23:50:45 PDT 2010


Revision: 68680
          http://trac.macports.org/changeset/68680
Author:   jmr at macports.org
Date:     2010-06-09 23:50:40 -0700 (Wed, 09 Jun 2010)
Log Message:
-----------
off-by-one in UmaskCmd

Modified Paths:
--------------
    trunk/base/src/pextlib1.0/Pextlib.c

Modified: trunk/base/src/pextlib1.0/Pextlib.c
===================================================================
--- trunk/base/src/pextlib1.0/Pextlib.c	2010-06-10 06:34:02 UTC (rev 68679)
+++ trunk/base/src/pextlib1.0/Pextlib.c	2010-06-10 06:50:40 UTC (rev 68680)
@@ -275,7 +275,7 @@
 {
 	Tcl_Obj *tcl_result;
 	char *tcl_mask, *p;
-	const size_t stringlen = 4; /* 3 digits & \0 */
+	const size_t stringlen = 5; /* 4 digits & \0 */
 	int i;
 	mode_t *set;
 	mode_t newmode;
@@ -297,23 +297,18 @@
 
 	oldmode = umask(newmode);
 
-	tcl_mask = malloc(stringlen); /* 3 digits & \0 */
+	tcl_mask = calloc(1, stringlen); /* 4 digits & \0 */
 	if (!tcl_mask) {
 		return TCL_ERROR;
 	}
 
 	/* Totally gross and cool */
-	p = tcl_mask + stringlen;
-	*p = '\0';
+	p = tcl_mask + stringlen - 1;
 	for (i = stringlen - 1; i > 0; i--) {
 		p--;
 		*p = (oldmode & 7) + '0';
 		oldmode >>= 3;
 	}
-	if (*p != '0') {
-		p--;
-		*p = '0';
-	}
 
 	tcl_result = Tcl_NewStringObj(p, -1);
 	free(tcl_mask);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100609/537c0fa6/attachment.html>


More information about the macports-changes mailing list