diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2008-06-30 16:11:54 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2008-06-30 16:11:54 +0400 |
commit | 5014f7e7cbddb7890502bdf6ee53c7be60124f60 (patch) | |
tree | 81b22423c28e8eac8cd4d42bca44c7a92e384e73 | |
parent | eab76d300da4e6d5712efd1db68e40cb1fc86a2c (diff) | |
download | rspamd-5014f7e7cbddb7890502bdf6ee53c7be60124f60.tar.gz rspamd-5014f7e7cbddb7890502bdf6ee53c7be60124f60.zip |
* Add checking of tempdir (ported from rpop)
-rw-r--r-- | cfg_file.y | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cfg_file.y b/cfg_file.y index 26b97871a..2af513eb6 100644 --- a/cfg_file.y +++ b/cfg_file.y @@ -80,6 +80,16 @@ command : tempdir : TEMPDIR EQSIGN QUOTEDSTRING { + struct stat st; + + if (stat ($3, &st) == -1) { + yyerror ("yyparse: cannot stat directory \"%s\": %s", $3, strerror (errno)); + YYERROR; + } + if (!S_ISDIR (st.st_mode)) { + yyerror ("yyparse: \"%s\" is not a directory", $3); + YYERROR; + } cfg->temp_dir = $3; } ; |