use local_cookie for support local-cgi commands
* file.c (loadGeneralFile): pass Local_cookie to DirBufferCommand * fm.h (Local_cookie): Str * local.c (setLocalCookie): Str, set_environ() (set_cgi_environ): remove LOCAL_COOKIE * main.c (ldhelp): pass Local_cookie (adBmark): ditto * rc.c (optionpanel_src1): cookie (load_option_panel): pass Local_cookie * w3mbookmark.c (main): check Local_cookie * w3mhelperpanel (main): ditto * scripts/dirlist.cgi.in: ditto * scripts/w3mhelp.cgi.in: ditto * scripts/multipart/multipart.cgi.in: ditto From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $Id: w3mhelperpanel.c,v 1.9 2002/11/12 12:41:58 ukai Exp $ */
|
||||
/* $Id: w3mhelperpanel.c,v 1.10 2002/11/26 18:03:29 ukai Exp $ */
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
@@ -168,11 +168,18 @@ main(int argc, char *argv[], char **envp)
|
||||
exit(1);
|
||||
|
||||
cgiarg = cgistr2tagarg(qs);
|
||||
mode = tag_get_value(cgiarg, "mode");
|
||||
|
||||
local_cookie = getenv("LOCAL_COOKIE");
|
||||
sent_cookie = tag_get_value(cgiarg, "cookie");
|
||||
if (local_cookie == NULL || sent_cookie == NULL ||
|
||||
strcmp(local_cookie, sent_cookie) != 0) {
|
||||
/* Local cookie doesn't match */
|
||||
bye("Local cookie doesn't match: It may be an illegal execution", "");
|
||||
}
|
||||
|
||||
mode = tag_get_value(cgiarg, "mode");
|
||||
mailcapfile = Strnew_charp(expandPath(RC_DIR));
|
||||
Strcat_charp(mailcapfile, "/mailcap");
|
||||
|
||||
if (mode && !strcmp(mode, "edit")) {
|
||||
char *referer;
|
||||
/* check if I can edit my mailcap */
|
||||
@@ -183,13 +190,6 @@ main(int argc, char *argv[], char **envp)
|
||||
bye("It may be an illegal execution\n referer=", referer);
|
||||
}
|
||||
}
|
||||
sent_cookie = tag_get_value(cgiarg, "cookie");
|
||||
if (local_cookie == NULL || sent_cookie == NULL ||
|
||||
strcmp(local_cookie, sent_cookie) != 0) {
|
||||
/* Local cookie doesn't match */
|
||||
bye("Local cookie doesn't match: It may be an illegal execution",
|
||||
"");
|
||||
}
|
||||
/* edit mailcap */
|
||||
editMailcap(mailcapfile->ptr, cgiarg);
|
||||
}
|
||||
|
Reference in New Issue
Block a user