cvs commit: apache/src/helpers PrintPath
ben 97/01/19 09:43:31 Modified:src Configure alloc.c http_main.c src/helpers PrintPath Log: Make use of -x or -r in [] per-platform. Revision ChangesPath 1.71 +5 -0 apache/src/Configure Index: Configure === RCS file: /export/home/cvs/apache/src/Configure,v retrieving revision 1.70 retrieving revision 1.71 diff -C3 -r1.70 -r1.71 *** Configure 1997/01/10 13:23:30 1.70 --- Configure 1997/01/19 17:43:27 1.71 *** *** 17,22 --- 17,23 file=Configuration tmpfile=htconf.$$ makefile_tmpl=Makefile.tmpl + CONF_TEST_EXECUTABLE=-x while [ x$1 != x ]; do if [ x$1 = x-file ] ; then *** *** 358,363 --- 359,365 OS='ULTRIX' CFLAGS=-DULTRIX DEF_WANTHSREGEX=yes + CONF_TEST_EXECUTABLE=-r ;; *powerpc-tenon-machten*) OS='MachTen' *** *** 394,399 --- 396,403 ;; esac + export CONF_TEST_EXECUTABLE + # # See if we need to override WANTHSREGEX # *** *** 426,431 --- 430,436 # then we look for some popular compilers in our $PATH # and set a safe optimization level # + for compilers in gcc cc acc c89 do lookedfor=$lookedfor $compilers 1.22 +0 -1 apache/src/alloc.c Index: alloc.c === RCS file: /export/home/cvs/apache/src/alloc.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C3 -r1.21 -r1.22 *** alloc.c 1997/01/01 18:10:13 1.21 --- alloc.c 1997/01/19 17:43:27 1.22 *** *** 189,195 while (blok != NULL) { if (min_size = blok-h.endp - blok-h.first_avail) { - *lastptr = blok-h.next; blok-h.next = NULL; return blok; --- 189,194 1.107 +3 -3 apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.106 retrieving revision 1.107 diff -C3 -r1.106 -r1.107 *** http_main.c 1997/01/12 20:38:12 1.106 --- http_main.c 1997/01/19 17:43:28 1.107 *** *** 1417,1423 s-server_hostname = pstrdup (pconf, (char *)h-h_name); else { ! fprintf(stderr,Failed to resolve server name (check DNS)\n); exit(0); } } --- 1417,1423 s-server_hostname = pstrdup (pconf, (char *)h-h_name); else { ! fprintf(stderr,Failed to resolve server name for %s (check DNS)\n,inet_ntoa(s-addrs-host_addr)); exit(0); } } *** *** 1635,1641 (struct sockaddr_in *)sa_client, (struct sockaddr_in *)sa_server, child_num); ! r = read_request (current_conn); (void)update_child_status (child_num, SERVER_BUSY_WRITE, r); if (r) process_request (r); /* else premature EOF --- ignore */ --- 1635,1641 (struct sockaddr_in *)sa_client, (struct sockaddr_in *)sa_server, child_num); ! r = read_request (current_conn); (void)update_child_status (child_num, SERVER_BUSY_WRITE, r); if (r) process_request (r); /* else premature EOF --- ignore */ *** *** 2018,2024 init_alloc(); pconf = permanent_pool; ptrans = make_sub_pool(pconf); ! server_argv0 = argv[0]; strcpy (server_root, HTTPD_ROOT); strcpy (server_confname, SERVER_CONFIG_FILE); --- 2018,2024 init_alloc(); pconf = permanent_pool; ptrans = make_sub_pool(pconf); ! server_argv0 = argv[0]; strcpy (server_root, HTTPD_ROOT); strcpy (server_confname, SERVER_CONFIG_FILE); 1.6 +2 -1 apache/src/helpers/PrintPath Index: PrintPath === RCS file: /export/home/cvs/apache/src/helpers/PrintPath,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** PrintPath 1997/01/06 18:10:23 1.5 --- PrintPath 1997/01/19 17:43:31 1.6 *** *** 3,8 --- 3,9 # will print out the full pathname unless # called with the '-s' option # + if [ x$1 = x-s ]; then shift else ***
cvs commit: apache/src CHANGES mod_fastcgi.c
randy 97/01/19 11:22:34 Modified:htdocs/manual/mod mod_fastcgi.html Log: Update docs. Note that I added a comment about the included patch being reversed and added the !--#include for our footer. Submitted by: Stanley Gambarin Revision ChangesPath 1.5 +321 -76 apache/htdocs/manual/mod/mod_fastcgi.html Index: mod_fastcgi.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_fastcgi.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C3 -r1.4 -r1.5 *** mod_fastcgi.html 1996/12/02 18:14:05 1.4 --- mod_fastcgi.html 1997/01/19 19:21:51 1.5 *** *** 12,84 /head body ! !--#include virtual=header.html -- ! h1Module mod_fastcgi/h1 - This module is contained in the codemod_fastcgi.c/code file. It - provides a high-performance alternative to CGI for writing Web server - applications in a variety of languages, including Perl, C, C++, - Java, and Python.p - - Any request for a file with the MIME type - codeapplication/x-httpd-fcgi/code will be processed by - codemod_fastcgi/code. For the request to succeed, the server's - configuration must have started the application (executable file) - using the codeAppClass/code directive. - pThis module is included optionally in Apache 1.2 and later. ! h2Summary/h2 ! FastCGI is a high-performance alternative to CGI. ! FastCGI gets its speed by having ! the Web server keep the application processes running between requests. So, ! unlike CGI, you do not have the overhead of starting up a new process and ! doing application initialization (e.g. connecting ! to a database) each time somebody requests a document. The ! processes start up with the Web server and keep on running.p FastCGI applications communicate with a Web server using a simple communications protocol. A single full-duplex connection communicates the environment variables and codestdin/code data to the application, and codestdout/code and codestderr/code data to ! the Web server.p For more information on FastCGI, including freely available FastCGI server modules and application libraries, go to the A ! HREF=http://www.fastcgi.com/;FastCGI home page (http://www.fastcgi.com/)/A.p h2Directives/h2 ul li a HREF=#AppClassAppClass/a li a HREF=#FastCgiIpcDirFastCgiIpcDir/a /ul hr A name=AppClassh2AppClass/h2/A ! strongSyntax:/strong AppClass exec-path em[-processes N] [-listen-queue-depth N] [-restart-delay N] [-priority N] [-initial-env name=value]br/em strongContext:/strong srm.confbr strongModule:/strong mod_fastcgip The codeAppClass/code directive starts one or more FastCGI application processes, using the executable file ! codeexec-path/code. codemod_fastcgi/code will restart these ! processes should they die.p ! ! When a client requests the file codeexec-path/code, ! the request is handled first by the codemod_fastcgi/code module. ! codemod_fastcgi/code communicates the request to a process ! in the application class, which generates the response. ! codemod_fastcgi/code relays this response back to the client.p The optional parameters to the codeAppClass/code directive are as follows: --- 12,165 /head body ! IMG SRC=http://www.apache.org/images/apache_sub.gif; ALT= ! !--/%hypertext -- ! h1Module mod_fastcgi/h1 ! This module is contained in the codemod_fastcgi.c/code file, and ! is not compiled into the server by default. ! To use codemod_fastcgi/code you first copy ! codesrc/mod_fastcgi.c/code from this kit into your Apache server's ! source directory. Then you add the following line to the server build ! Configuration file: ! pre ! Module fastcgi_modulemod_fastcgi.o ! /pre ! p ! FastCGI provides a high-performance alternative to CGI for writing Web ! server applications in a variety of languages, including Perl, C, C++, ! Java, and Python. FastCGI gets its speed by having keeping ! application processes running between requests. So, unlike CGI, you do ! not have the overhead of starting up a new process and doing ! application initialization (e.g. connecting to a database) each time ! somebody requests a document.p FastCGI applications communicate with a Web server using a simple communications protocol. A single full-duplex connection communicates the environment variables and codestdin/code data to the application, and codestdout/code and codestderr/code data to ! the Web server. An application can reside on a different ! machine from the Web server, allowing applications to scale beyond ! a single box and providing
cvs commit: apache/htdocs/manual/mod mod_fastcgi.html
randy 97/01/19 11:28:49 Modified:htdocs/manual/mod mod_fastcgi.html Log: Get it right. Revision ChangesPath 1.6 +1 -4 apache/htdocs/manual/mod/mod_fastcgi.html Index: mod_fastcgi.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_fastcgi.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C3 -r1.5 -r1.6 *** mod_fastcgi.html 1997/01/19 19:21:51 1.5 --- mod_fastcgi.html 1997/01/19 19:28:48 1.6 *** *** 12,21 /head body ! IMG SRC=http://www.apache.org/images/apache_sub.gif; ALT= ! !--/%hypertext -- ! ! h1Module mod_fastcgi/h1 --- 12,18 /head body ! !--#include virtual=header.html -- h1Module mod_fastcgi/h1
cvs commit: apache/htdocs/manual/mod mod_fastcgi.html
randy 97/01/19 11:31:43 Modified:htdocs/manual/mod mod_fastcgi.html Log: More bits. Revision ChangesPath 1.7 +2 -0 apache/htdocs/manual/mod/mod_fastcgi.html Index: mod_fastcgi.html === RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_fastcgi.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** mod_fastcgi.html 1997/01/19 19:28:48 1.6 --- mod_fastcgi.html 1997/01/19 19:31:42 1.7 *** *** 25,30 --- 25,32 pre Module fastcgi_modulemod_fastcgi.o /pre + pThis module is included optionally in Apache 1.2 and later. + p FastCGI provides a high-performance alternative to CGI for writing Web server applications in a variety of languages, including Perl, C, C++,
cvs commit: apache/src util_snprintf.c
jim 97/01/19 15:46:27 Modified:src util_snprintf.c Log: portabilities fixes Revision ChangesPath 1.3 +16 -23apache/src/util_snprintf.c Index: util_snprintf.c === RCS file: /export/home/cvs/apache/src/util_snprintf.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** util_snprintf.c 1997/01/18 21:28:15 1.2 --- util_snprintf.c 1997/01/19 23:46:25 1.3 *** *** 63,68 --- 63,71 #include ctype.h #include sys/types.h #include stdarg.h + #include string.h + #include stdlib.h + #include math.h #ifdef HAVE_CVT *** *** 77,85 * from GNU libc-4.6.27 */ - #include stdlib.h - #include math.h - /* *ap_ecvt converts to decimal * the number of digits is specified by ndigit --- 80,85 *** *** 252,260 #define INT_NULL((int *)0) #define WIDE_INTlong ! typedef WIDE_INT wide_int; ! typedef unsigned WIDE_INT u_wide_int; ! typedef int bool_int; #define S_NULL (null) #define S_NULL_LEN 6 --- 252,260 #define INT_NULL((int *)0) #define WIDE_INTlong ! typedef WIDE_INTwide_int; ! typedef unsigned WIDE_INT u_wide_int; ! typedef int bool_int; #define S_NULL (null) #define S_NULL_LEN 6 *** *** 273,284 /* * Descriptor for buffer area */ ! struct __buf_area { char *buf_end; char *nextb;/* pointer to next byte to read/write */ }; ! typedef struct __buf_area __buffy; /* * The INS_CHAR macro inserts a character in the buffer and writes --- 273,284 /* * Descriptor for buffer area */ ! struct buf_area { char *buf_end; char *nextb;/* pointer to next byte to read/write */ }; ! typedef struct buf_area buffy; /* * The INS_CHAR macro inserts a character in the buffer and writes *** *** 327,337 * Macro that does padding. The padding is done by printing * the character ch. */ ! #define PAD( width, len, ch ) do \ ! { \ INS_CHAR( ch, sp, bep, cc ) ; \ ! width-- ; \ ! } \ while ( width len ) /* --- 327,337 * Macro that does padding. The padding is done by printing * the character ch. */ ! #define PAD( width, len, ch ) do \ ! { \ INS_CHAR( ch, sp, bep, cc ) ; \ ! width-- ; \ ! } \ while ( width len ) /* *** *** 416,423 register char *s = buf; register char *p; int decimal_point; - extern char *ap_ecvt(), *ap_fcvt(); - char *strcpy(char *, const char *); if (format == 'f') p = ap_fcvt(num, precision, decimal_point, is_negative); --- 416,421 *** *** 528,534 /* * Do format conversion placing the output in buffer */ ! static int __format_converter(register __buffy * odp, const char *fmt, va_list ap) { register char *sp; --- 526,532 /* * Do format conversion placing the output in buffer */ ! static int format_converter(register buffy * odp, const char *fmt, va_list ap) { register char *sp; *** *** 566,576 boolean_e adjust_width; bool_int is_negative; - extern char *ap_gcvt(); - char *strchr(const char *, int); - int isascii(int); - - sp = odp-nextb; bep = odp-buf_end; --- 564,569 *** *** 847,853 * We print %char to help the user identify what * option is not understood. * This is also useful in case the user wants to pass ! * the output of __format_converter to another function * that understands some other %char (like syslog). * Note that we can't point s inside fmt because the * unknown char could be preceded by width etc. --- 840,846 * We print %char to help the user identify what * option is not understood. * This is also useful in case the user wants to pass ! * the output of format_converter to another
cvs commit: apache/src/modules/proxy proxy_cache.c proxy_ftp.c proxy_http.c proxy_util.c
jim 97/01/19 20:28:35 Modified:src CHANGES buff.c http_config.c http_core.c http_main.c http_protocol.c http_request.c mod_auth.c mod_auth_anon.c mod_auth_db.c mod_auth_dbm.c mod_auth_msql.c mod_cgi.c mod_digest.c mod_expires.c mod_imap.c mod_include.c mod_info.c mod_log_agent.c mod_log_config.c mod_negotiation.c mod_rewrite.c mod_rewrite.h mod_usertrack.c rfc1413.c util.c util_script.c src/modules/proxy proxy_cache.c proxy_ftp.c proxy_http.c proxy_util.c Log: Change from sprintf() to snprintf() to avoid and possible prevent buffer overflows Revision ChangesPath 1.126 +4 -0 apache/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.125 retrieving revision 1.126 diff -C3 -r1.125 -r1.126 *** CHANGES 1997/01/20 00:12:33 1.125 --- CHANGES 1997/01/20 04:28:07 1.126 *** *** 1,5 --- 1,9 Changes with Apache 1.2b5 + *) Migration from sprintf() to snprintf() to avoid buffer + overflows. Provide portable snprintf() implementation + (ap_snprintf). [Marc Slemko, jj] + *) Remove mod_fastcgi.c from the distribution. This module appears to be maintained more through the Open Market channels and should continue to be easily available at http://www.fastcgi.com/ 1.14 +1 -1 apache/src/buff.c Index: buff.c === RCS file: /export/home/cvs/apache/src/buff.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C3 -r1.13 -r1.14 *** buff.c1997/01/18 19:17:21 1.13 --- buff.c1997/01/20 04:28:07 1.14 *** *** 481,487 if (fb-flags B_CHUNK) { char chunksize[16]; /* Big enough for practically anything */ ! sprintf(chunksize, %x\015\012, nbyte); write(fb-fd, chunksize, strlen(chunksize)); } r = write(fb-fd, buf, nbyte); --- 481,487 if (fb-flags B_CHUNK) { char chunksize[16]; /* Big enough for practically anything */ ! ap_snprintf(chunksize, sizeof(chunksize), %x\015\012, nbyte); write(fb-fd, chunksize, strlen(chunksize)); } r = write(fb-fd, buf, nbyte); 1.41 +1 -1 apache/src/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache/src/http_config.c,v retrieving revision 1.40 retrieving revision 1.41 diff -C3 -r1.40 -r1.41 *** http_config.c 1997/01/04 15:10:15 1.40 --- http_config.c 1997/01/20 04:28:07 1.41 *** *** 236,242 for(n=0 ; aMethods[n].offset = 0 ; ++n) if(aMethods[n].offset == offset) break; ! sprintf(buf,%s:%s,modp-name,aMethods[n].method); return buf; } #else --- 236,242 for(n=0 ; aMethods[n].offset = 0 ; ++n) if(aMethods[n].offset == offset) break; ! ap_snprintf(buf, sizeof(buf), %s:%s,modp-name,aMethods[n].method); return buf; } #else 1.58 +2 -1 apache/src/http_core.c Index: http_core.c === RCS file: /export/home/cvs/apache/src/http_core.c,v retrieving revision 1.57 retrieving revision 1.58 diff -C3 -r1.57 -r1.58 *** http_core.c 1997/01/01 18:10:17 1.57 --- http_core.c 1997/01/20 04:28:08 1.58 *** *** 884,890 const char *set_server_root (cmd_parms *cmd, void *dummy, char *arg) { if (!is_directory (arg)) return ServerRoot must be a valid directory; ! strcpy (server_root, arg); return NULL; } --- 884,891 const char *set_server_root (cmd_parms *cmd, void *dummy, char *arg) { if (!is_directory (arg)) return ServerRoot must be a valid directory; ! strncpy (server_root, arg, sizeof(server_root)-1); ! server_root[sizeof(server_root)-1] = '\0'; return NULL; } 1.108 +20 -14apache/src/http_main.c Index: http_main.c === RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.107 retrieving revision 1.108 diff -C3 -r1.107 -r1.108 *** http_main.c 1997/01/19 17:43:28 1.107 --- http_main.c 1997/01/20 04:28:08 1.108 *** *** 193,206 void accept_mutex_init(pool *p) { ! char lock_fname[30]; #ifdef __MACHTEN__ !
cvs commit: apache/src mod_auth_msql.c
randy 97/01/19 22:30:41 Modified:src mod_auth_msql.c Log: MAX_STRING_LENGTH - MAX_STRING_LEN Revision ChangesPath 1.19 +21 -21apache/src/mod_auth_msql.c Index: mod_auth_msql.c === RCS file: /export/home/cvs/apache/src/mod_auth_msql.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C3 -r1.18 -r1.19 *** mod_auth_msql.c 1997/01/20 04:28:11 1.18 --- mod_auth_msql.c 1997/01/20 06:30:39 1.19 *** *** 280,286 * management tool. Added EncryptedPassword on/off functionality. * msqlClose() statements added upon error. Support for persistent * connections with the mSQL database (riscy). Escaping of ' and \. ! * Replaced some MAX_STRING_LENGTH claims. * 1.0 removed some error check as they where already done elsehwere * NumFields - NumRows (Thanks Vitek). More stack memory. * 1.1 no logging of empty password strings. --- 280,286 * management tool. Added EncryptedPassword on/off functionality. * msqlClose() statements added upon error. Support for persistent * connections with the mSQL database (riscy). Escaping of ' and \. ! * Replaced some MAX_STRING_LEN claims. * 1.0 removed some error check as they where already done elsehwere * NumFields - NumRows (Thanks Vitek). More stack memory. * 1.1 no logging of empty password strings. *** *** 560,566 /* does this fit ? */ if (j = (MAX_FIELD_LEN-1)) { ! ap_snprintf(msql_errstr, MAX_STRING_LENGTH, Could not escape '%s', longer than %d,in,MAX_FIELD_LEN); return NULL; }; --- 560,566 /* does this fit ? */ if (j = (MAX_FIELD_LEN-1)) { ! ap_snprintf(msql_errstr, MAX_STRING_LEN, Could not escape '%s', longer than %d,in,MAX_FIELD_LEN); return NULL; }; *** *** 602,608 /* (re) open if nessecary */ if (sock==-1) if ((sock=msqlConnect(host)) == -1) { ! ap_snprintf (msql_errstr, MAX_STRING_LENGTH, mSQL: Could not connect to Msql DB %s (%s), (sec-auth_msql_host ? sec-auth_msql_host : \'unset, assuming localhost!\'), msqlErrMsg); --- 602,608 /* (re) open if nessecary */ if (sock==-1) if ((sock=msqlConnect(host)) == -1) { ! ap_snprintf (msql_errstr, MAX_STRING_LEN, mSQL: Could not connect to Msql DB %s (%s), (sec-auth_msql_host ? sec-auth_msql_host : \'unset, assuming localhost!\'), msqlErrMsg); *** *** 613,619 * and is quite cheap anyway */ if (msqlSelectDB(sock,sec-auth_msql_database) == -1 ) { ! ap_snprintf (msql_errstr, MAX_STRING_LENGTH, mSQL: Could not select Msql Table \'%s\' on host \'%s\'(%s), (sec-auth_msql_database ? sec-auth_msql_database : \'unset!\'), (sec-auth_msql_host ? sec-auth_msql_host : \'unset, assuming localhost!\'), --- 613,619 * and is quite cheap anyway */ if (msqlSelectDB(sock,sec-auth_msql_database) == -1 ) { ! ap_snprintf (msql_errstr, MAX_STRING_LEN, mSQL: Could not select Msql Table \'%s\' on host \'%s\'(%s), (sec-auth_msql_database ? sec-auth_msql_database : \'unset!\'), (sec-auth_msql_host ? sec-auth_msql_host : \'unset, assuming localhost!\'), *** *** 624,630 } if (msqlQuery(sock,query) == -1 ) { ! ap_snprintf (msql_errstr, MAX_STRING_LENGTH, mSQL: Could not Query database '%s' on host '%s' (%s) with query [%s], (sec-auth_msql_database ? sec-auth_msql_database : \'unset!\'), (sec-auth_msql_host ? sec-auth_msql_host : \'unset, assuming localhost!\'), --- 624,630 } if (msqlQuery(sock,query) == -1 ) { ! ap_snprintf (msql_errstr, MAX_STRING_LEN, mSQL: Could not Query database '%s' on host '%s' (%s) with query [%s], (sec-auth_msql_database ? sec-auth_msql_database : \'unset!\'), (sec-auth_msql_host ? sec-auth_msql_host : \'unset, assuming localhost!\'), *** *** 636,642 } if (!(results=msqlStoreResult())) { ! ap_snprintf (msql_errstr, MAX_STRING_LENGTH, mSQL: Could not