[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