[68687] branches/release_1_9/base/src/pextlib1.0/Pextlib.c

jmr at macports.org jmr at macports.org
Thu Jun 10 04:48:36 PDT 2010


Revision: 68687
          http://trac.macports.org/changeset/68687
Author:   jmr at macports.org
Date:     2010-06-10 04:48:33 -0700 (Thu, 10 Jun 2010)
Log Message:
-----------
merge r68680 from trunk:
 off-by-one in UmaskCmd

Revision Links:
--------------
    http://trac.macports.org/changeset/68680

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

Modified: branches/release_1_9/base/src/pextlib1.0/Pextlib.c
===================================================================
--- branches/release_1_9/base/src/pextlib1.0/Pextlib.c	2010-06-10 11:46:59 UTC (rev 68686)
+++ branches/release_1_9/base/src/pextlib1.0/Pextlib.c	2010-06-10 11:48:33 UTC (rev 68687)
@@ -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/20100610/c1c7d08f/attachment.html>


More information about the macports-changes mailing list