const char *data)
{
static const char *argv[] = { NULL, NULL, NULL };
- const char *host, *mail;
+ const char *host, *mail, *home_dir;
char title[1024];
pid_t pid;
int i, err;
restrict_process_size(process_size, (unsigned int)-1);
+ home_dir = data + reply->home_idx;
+ if (*home_dir != '\0') {
+ if (chdir(home_dir) < 0)
+ i_fatal("chdir(%s) failed: %m", home_dir);
+ }
+
env_put("LOGGED_IN=1");
- env_put(t_strconcat("HOME=", data + reply->home_idx, NULL));
+ env_put(t_strconcat("HOME=", home_dir, NULL));
env_put(t_strconcat("MAIL_CACHE_FIELDS=",
set->mail_cache_fields, NULL));
env_put(t_strconcat("MAIL_NEVER_CACHE_FIELDS=",
if (setsid() < 0)
i_fatal("setsid() failed: %m");
+
+ if (chdir(set->base_dir) < 0)
+ i_fatal("chdir(%s) failed: %m", set->base_dir);
}
static void print_help(void)