[25434] branches/dp2mp-move/base/src/pextlib1.0/uid.c

source_changes at macosforge.org source_changes at macosforge.org
Mon May 21 22:23:38 PDT 2007


Revision: 25434
          http://trac.macosforge.org/projects/macports/changeset/25434
Author:   jmpp at macports.org
Date:     2007-05-21 22:23:38 -0700 (Mon, 21 May 2007)

Log Message:
-----------
Merging eridius' r25138: Fix the error reporting for the getuid/setuid family of functions in Pextlib to behave appropriately.

Modified Paths:
--------------
    branches/dp2mp-move/base/src/pextlib1.0/uid.c

Modified: branches/dp2mp-move/base/src/pextlib1.0/uid.c
===================================================================
--- branches/dp2mp-move/base/src/pextlib1.0/uid.c	2007-05-22 05:21:31 UTC (rev 25433)
+++ branches/dp2mp-move/base/src/pextlib1.0/uid.c	2007-05-22 05:23:38 UTC (rev 25434)
@@ -52,7 +52,7 @@
 	
 	/* Check the arg count */
 	if (objc != 1) {
-		Tcl_WrongNumArgs(interp, 1, objv, "getuid");
+        Tcl_WrongNumArgs(interp, 1, objv, NULL);
 		return TCL_ERROR;
 	}
 	
@@ -73,7 +73,7 @@
 	
 	/* Check the arg count */
 	if (objc != 1) {
-		Tcl_WrongNumArgs(interp, 1, objv, "geteuid");
+        Tcl_WrongNumArgs(interp, 1, objv, NULL);
 		return TCL_ERROR;
 	}
 	
@@ -94,7 +94,7 @@
 	
 	/* Check the arg count */
 	if (objc != 2) {
-		Tcl_WrongNumArgs(interp, 1, objv, "setuid");
+		Tcl_WrongNumArgs(interp, 1, objv, "uid");
 		return TCL_ERROR;
 	}
 	
@@ -103,8 +103,12 @@
 		return TCL_ERROR;
 		
 	/* set the uid */
-	if (0 != setuid(uid))
-		Tcl_SetResult(interp, "setuid failed", NULL);
+	if (0 != setuid(uid)) {
+        Tcl_Obj *result = Tcl_NewStringObj("could not set uid to ", -1);
+        Tcl_AppendObjToObj(result, objv[1]);
+        Tcl_SetObjResult(interp, result);
+        return TCL_ERROR;
+    }
 		
 	return TCL_OK;
 }
@@ -122,7 +126,7 @@
 
 	/* Check the arg count */
 	if (objc != 2) {
-		Tcl_WrongNumArgs(interp, 1, objv, "seteuid");
+		Tcl_WrongNumArgs(interp, 1, objv, "uid");
 		return TCL_ERROR;
 	}
 	
@@ -131,8 +135,12 @@
 		return TCL_ERROR;
 		
 	/* set the euid */
-	if (0 != seteuid(uid))
-		Tcl_SetResult(interp, "seteuid failed", NULL);
+	if (0 != seteuid(uid)) {
+        Tcl_Obj *result = Tcl_NewStringObj("could not set effective uid to ", -1);
+        Tcl_AppendObjToObj(result, objv[1]);
+        Tcl_SetObjResult(interp, result);
+        return TCL_ERROR;
+    }
 		
 	return TCL_OK;
 }
@@ -151,7 +159,7 @@
 	
 	/* Check the arg count */
 	if (objc != 2) {
-		Tcl_WrongNumArgs(interp, 1, objv, "name_to_uid");
+		Tcl_WrongNumArgs(interp, 1, objv, "name");
 		return TCL_ERROR;
 	}
 	
@@ -185,7 +193,7 @@
 	
 	/* Check the arg count */
 	if (objc != 2) {
-		Tcl_WrongNumArgs(interp, 1, objv, "getpwnam");
+		Tcl_WrongNumArgs(interp, 1, objv, "uid");
 		return TCL_ERROR;
 	}
 	
@@ -196,7 +204,7 @@
 	/* Map the uid --> name, or empty result on error */
 	pwent = getpwuid(uid);
 	if (pwent != NULL)
-		Tcl_SetResult(interp, pwent->pw_name, NULL);
+		Tcl_SetResult(interp, pwent->pw_name, TCL_STATIC);
 
 	return TCL_OK;
 }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070521/1254afde/attachment.html


More information about the macports-changes mailing list