pam_mount/pam_mount-0.47-fix-replace-options.dif

33 lines
1002 B
Plaintext

--- src/mount.c
+++ src/mount.c 2008/10/13 14:19:40
@@ -785,6 +785,7 @@
{
const struct HXdeque_node *n;
struct HXdeque *argv;
+ struct HXdeque *argv2;
hmc_t *ll_password = NULL;
int child_exit = 0, cstdin = -1, cstderr = -1;
const char *mount_user;
@@ -847,13 +848,20 @@
if ((argv = HXdeque_init()) == NULL)
misc_log("malloc: %s\n", strerror(errno));
+ if ((argv2 = HXdeque_init()) == NULL)
+ misc_log("malloc: %s\n", strerror(errno));
if (vpt->uses_ssh)
for (n = config->command[CMD_FD0SSH]->first;
n != NULL; n = n->next)
arglist_add(argv, n->ptr, vinfo);
for (n = config->command[vpt->type]->first; n != NULL; n = n->next)
- arglist_add(argv, n->ptr, vinfo);
+ arglist_add(argv2, n->ptr, vinfo);
+ /*
+ * do a replacement a second time to catch also variables
+ * specified in the options of a volume
+ */
+ argv = arglist_build(argv2, vinfo);
if (vpt->type == CMD_LCLMOUNT &&
!check_filesystem(config, vpt, vinfo, ll_password))