From: Ian Jackson Date: Tue, 29 Mar 2016 22:09:49 +0000 (+0100) Subject: cgi-fcgi-interp: mkdir ~/.cgi-fcgi-interp if necessary. X-Git-Tag: archive/debian/5.0.0~34 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-utils.git;a=commitdiff_plain;h=bb8d1285da705a02264f4e18708995fb8efabfd7 cgi-fcgi-interp: mkdir ~/.cgi-fcgi-interp if necessary. --- diff --git a/cprogs/cgi-fcgi-interp.c b/cprogs/cgi-fcgi-interp.c index ef48cfd..b9deba7 100644 --- a/cprogs/cgi-fcgi-interp.c +++ b/cprogs/cgi-fcgi-interp.c @@ -191,6 +191,7 @@ static const struct cmdinfo cmdinfos[]= { static uid_t us; static const char *run_base, *script, *socket_path; +static const char *run_base_mkdir_p; static int stderr_copy; static bool find_run_base_var_run(void) { @@ -239,7 +240,8 @@ static bool find_run_base_home(void) { if (sizeof(ut.nodename) > 32) ut.nodename[32] = 0; - try = m_asprintf("%s/%s/%s", pw->pw_dir, ".cgi-fcgi-interp", ut.nodename); + run_base_mkdir_p = m_asprintf("%s/%s", pw->pw_dir, ".cgi-fcgi-interp"); + try = m_asprintf("%/%s", run_base_mkdir_p, ut.nodename); run_base = try; return 1; } @@ -287,6 +289,11 @@ static void find_socket_path(void) { run_base, ident, maxidentlen); r = mkdir(run_base, 0700); + if (r && errno==ENOENT && run_base_mkdir_p) { + r = mkdir(run_base_mkdir_p, 0700); + if (r) err(127,"mkdir %s (since %s was ENOENT)",run_base_mkdir_p,run_base); + r = mkdir(run_base, 0700); + } if (r) { if (!(errno == EEXIST)) err(127,"mkdir %s",run_base); diff --git a/debian/changelog b/debian/changelog index 99a7d5d..27b9960 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +chiark-utils (4.5.0~iwj2) UNRELEASED; urgency=medium + + * cgi-fcgi-interp: mkdir ~/.cgi-fcgi-interp if necessary. + + -- Ian Jackson Tue, 29 Mar 2016 23:09:45 +0100 + chiark-utils (4.5.0~iwj1) UNRELEASED; urgency=medium * New script `git-branchmove'.