← Commit list

344ea471e

Rob Landley
Rob Landley
2005-09-01
SOURCE BUG Duration: 5s

Subject

Tracking system but #4: php needs the environment variable SCRIPT_FILENAME.

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

networking/httpd.c+6 -1
@@ -1146,6 +1146,11 @@ static int sendCgi(const char *url,
}
if(script != NULL)
*script = '\0'; /* reduce /PATH_INFO */
+ /* SCRIPT_FILENAME required by PHP in CGI mode */
+ if(realpath(purl + 1, realpath_buff))
+ addEnv("SCRIPT", "FILENAME", realpath_buff);
+ else
+ *realpath_buff = 0;
/* set SCRIPT_NAME as full path: /cgi-bin/dirs/script.cgi */
addEnv("SCRIPT_NAME", "", purl);
addEnv("QUERY_STRING", "", config->query);
@@ -1178,7 +1183,7 @@ static int sendCgi(const char *url,
/* set execve argp[0] without path */
argp[0] = strrchr( purl, '/' ) + 1;
/* but script argp[0] must have absolute path and chdiring to this */
- if(realpath(purl + 1, realpath_buff) != NULL) {
+ if(*realpath_buff) {
script = strrchr(realpath_buff, '/');
if(script) {
*script = '\0';