[dovecot-cvs] dovecot/src/auth passdb-checkpassword.c,1.14,1.15

cras at dovecot.org cras at dovecot.org
Wed Jan 25 19:29:06 EET 2006


Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv26184

Modified Files:
	passdb-checkpassword.c 
Log Message:
Allow parameters to be passed to checkpassword.



Index: passdb-checkpassword.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/passdb-checkpassword.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- passdb-checkpassword.c	25 Jan 2006 17:24:42 -0000	1.14
+++ passdb-checkpassword.c	25 Jan 2006 17:29:04 -0000	1.15
@@ -180,22 +180,23 @@
 				 struct checkpassword_passdb_module *module,
 				 int fd_in, int fd_out)
 {
-	const char *args[3];
+	const char *cmd, *const *args;
 
 	if (dup2(fd_out, 3) < 0 || dup2(fd_in, 4) < 0) {
 		auth_request_log_error(request, "checkpassword",
 				       "dup2() failed: %m");
 	} else {
-		args[0] = module->checkpassword_path;
-		args[1] = module->checkpassword_reply_path;
-		args[2] = NULL;
+		/* very simple argument splitting. */
+		cmd = t_strconcat(module->checkpassword_path, " ",
+				  module->checkpassword_reply_path, NULL);
+		args = t_strsplit(cmd, " ");
 
 		auth_request_log_debug(request, "checkpassword",
-			"Executed: %s %s", args[0], args[1]);
+				       "Executed: %s", cmd);
 
-		execv(module->checkpassword_path, (char **)args);
+		execv(args[0], (char **)args);
 		auth_request_log_error(request, "checkpassword",
-			"execv(%s) failed: %m", module->checkpassword_path);
+				       "execv(%s) failed: %m", args[0]);
 	}
 	exit(2);
 }



More information about the dovecot-cvs mailing list