X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=unix%2Fuxshare.c;h=9279a04983984db408f0a6a8ecdd10150a44af4f;hb=095072fa46b2d7b8beafaddb2f873d2f500a1e10;hp=3da52defbea7e9db1d21f3580f56086cdc54a02a;hpb=24cd95b6f91bf71a36ac0712d56d6b5fdfbf1bd4;p=PuTTY.git diff --git a/unix/uxshare.c b/unix/uxshare.c index 3da52def..9279a049 100644 --- a/unix/uxshare.c +++ b/unix/uxshare.c @@ -42,37 +42,6 @@ static char *make_parentdir_name(void) return parent; } -static char *make_dir_and_check_ours(const char *dirname) -{ - struct stat st; - - /* - * Create the directory. We might have created it before, so - * EEXIST is an OK error; but anything else is doom. - */ - if (mkdir(dirname, 0700) < 0 && errno != EEXIST) - return dupprintf("%s: mkdir: %s", dirname, strerror(errno)); - - /* - * Now check that that directory is _owned by us_ and not writable - * by anybody else. This protects us against somebody else - * previously having created the directory in a way that's - * writable to us, and thus manipulating us into creating the - * actual socket in a directory they can see so that they can - * connect to it and use our authenticated SSH sessions. - */ - if (stat(dirname, &st) < 0) - return dupprintf("%s: stat: %s", dirname, strerror(errno)); - if (st.st_uid != getuid()) - return dupprintf("%s: directory owned by uid %d, not by us", - dirname, st.st_uid); - if ((st.st_mode & 077) != 0) - return dupprintf("%s: directory has overgenerous permissions %03o" - " (expected 700)", dirname, st.st_mode & 0777); - - return NULL; -} - static char *make_dirname(const char *pi_name, char **logtext) { char *name, *parentdirname, *dirname, *err;