[25138] trunk/base/src/pextlib1.0/uid.c

source_changes at macosforge.org source_changes at macosforge.org
Mon May 14 13:49:49 PDT 2007


Revision: 25138
          http://trac.macosforge.org/projects/macports/changeset/25138
Author:   eridius at macports.org
Date:     2007-05-14 13:49:49 -0700 (Mon, 14 May 2007)

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

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

Modified: trunk/base/src/pextlib1.0/uid.c
===================================================================
--- trunk/base/src/pextlib1.0/uid.c	2007-05-14 19:32:34 UTC (rev 25137)
+++ trunk/base/src/pextlib1.0/uid.c	2007-05-14 20:49:49 UTC (rev 25138)
@@ -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/20070514/494d2676/attachment.html


More information about the macports-changes mailing list