Adding upstream version 0.5.2
This commit is contained in:
15
local.c
15
local.c
@@ -1,4 +1,4 @@
|
||||
/* $Id: local.c,v 1.31 2003/09/26 17:59:51 ukai Exp $ */
|
||||
/* $Id: local.c,v 1.35 2007/05/23 15:06:05 inu Exp $ */
|
||||
#include "fm.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
@@ -16,6 +16,10 @@
|
||||
#include "local.h"
|
||||
#include "hash.h"
|
||||
|
||||
#ifdef __MINGW32_VERSION
|
||||
#include <winsock.h>
|
||||
#endif
|
||||
|
||||
#define CGIFN_NORMAL 0
|
||||
#define CGIFN_LIBDIR 1
|
||||
#define CGIFN_CGIBIN 2
|
||||
@@ -85,7 +89,8 @@ loadLocalDir(char *dname)
|
||||
Strcat_char(dirname, '/');
|
||||
qdir = html_quote(Str_conv_from_system(dirname)->ptr);
|
||||
/* FIXME: gettextize? */
|
||||
tmp = Strnew_m_charp("<HTML>\n<HEAD>\n<BASE HREF=\"file://", qdir,
|
||||
tmp = Strnew_m_charp("<HTML>\n<HEAD>\n<BASE HREF=\"file://",
|
||||
html_quote(file_quote(dirname->ptr)),
|
||||
"\">\n<TITLE>Directory list of ", qdir,
|
||||
"</TITLE>\n</HEAD>\n<BODY>\n<H1>Directory list of ",
|
||||
qdir, "</H1>\n", NULL);
|
||||
@@ -193,8 +198,10 @@ check_local_cgi(char *file, int status)
|
||||
return -1;
|
||||
if (S_ISDIR(st.st_mode))
|
||||
return -1;
|
||||
#ifndef __MINGW32_VERSION
|
||||
if ((st.st_uid == geteuid() && (st.st_mode & S_IXUSR)) || (st.st_gid == getegid() && (st.st_mode & S_IXGRP)) || (st.st_mode & S_IXOTH)) /* executable */
|
||||
return 0;
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -353,6 +360,9 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)
|
||||
pid_t pid;
|
||||
char *file = uri, *name = uri, *path_info = NULL, *tmpf = NULL;
|
||||
|
||||
#ifdef __MINGW32_VERSION
|
||||
return NULL;
|
||||
#else
|
||||
status = cgi_filename(uri, &file, &name, &path_info);
|
||||
if (check_local_cgi(file, status) < 0)
|
||||
return NULL;
|
||||
@@ -412,4 +422,5 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)
|
||||
file, mybasename(file), strerror(errno));
|
||||
exit(1);
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user