You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Brad Nicholes <BN...@novell.com> on 2004/10/23 23:36:54 UTC

Re: cvs commit: httpd-2.0/server core.c protocol.c request.c scoreboard.c util.c util_script.c

-1 as well.  This is now causing compiler errors on NetWare.  Please
revert this patch!

Brad

>>> fielding@gbiv.com Friday, October 22, 2004 12:37:23 PM >>>
whoa!  -1

Was this even discussed on the list?  You just changed the
entire module API and introduced a dozen potential security holes.
Why on earth is it changing nvec to apr_size_t and then downcasting
its use?  Why is any of this even needed?

....Roy

On Oct 22, 2004, at 8:22 AM, ake@apache.org wrote:

> ake         2004/10/22 08:22:05
>
>   Modified:    .        CHANGES
>                include  ap_mmn.h http_protocol.h httpd.h
scoreboard.h
>                         util_script.h
>                modules/http http_protocol.c
>                server   core.c protocol.c request.c scoreboard.c
util.c
>                         util_script.c
>   Log:
>   WIN64: API changes to clean up Windows 64bit compile warnings
>
>   Revision  Changes    Path
>   1.1614    +3 -0      httpd-2.0/CHANGES
>
>   Index: CHANGES
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/CHANGES,v
>   retrieving revision 1.1613
>   retrieving revision 1.1614
>   diff -u -r1.1613 -r1.1614
>   --- CHANGES	18 Oct 2004 00:49:30 -0000	1.1613
>   +++ CHANGES	22 Oct 2004 15:22:03 -0000	1.1614
>   @@ -2,6 +2,9 @@
>
>      [Remove entries to the current 2.0 section below, when
backported]
>
>   +  *) WIN64: API changes to clean up Windows 64bit compile
warnings
>   +     [Allan Edwards]
>   +
>      *) mod_cache: CacheDisable will only disable the URLs it was 
> meant to
>         disable, not all caching. PR 31128.
>         [Edward Rudd <eddie omegaware.com>, Paul Querna]
>
>
>
>   1.70      +3 -2      httpd-2.0/include/ap_mmn.h
>
>   Index: ap_mmn.h
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/include/ap_mmn.h,v
>   retrieving revision 1.69
>   retrieving revision 1.70
>   diff -u -r1.69 -r1.70
>   --- ap_mmn.h	4 Jun 2004 22:40:46 -0000	1.69
>   +++ ap_mmn.h	22 Oct 2004 15:22:04 -0000	1.70
>   @@ -84,14 +84,15 @@
>     *                      changed ap_add_module,
ap_add_loaded_module,
>     *                      ap_setup_prelinked_modules, 
> ap_process_resource_config
>     * 20040425.1 (2.1.0-dev) Added ap_module_symbol_t and 
> ap_prelinked_module_symbols
>   + * 20041022   (2.1.0-dev) API changes to clean up 64bit compiles
>     */
>
>    #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
>
>    #ifndef MODULE_MAGIC_NUMBER_MAJOR
>   -#define MODULE_MAGIC_NUMBER_MAJOR 20040425
>   +#define MODULE_MAGIC_NUMBER_MAJOR 20041022
>    #endif
>   -#define MODULE_MAGIC_NUMBER_MINOR 1                     /* 0...n
*/
>   +#define MODULE_MAGIC_NUMBER_MINOR 0                     /* 0...n
*/
>
>    /**
>     * Determine if the server's current MODULE_MAGIC_NUMBER is at 
> least a
>
>
>
>   1.93      +10 -10    httpd-2.0/include/http_protocol.h
>
>   Index: http_protocol.h
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/include/http_protocol.h,v
>   retrieving revision 1.92
>   retrieving revision 1.93
>   diff -u -r1.92 -r1.93
>   --- http_protocol.h	18 Jul 2004 20:06:38 -0000	1.92
>   +++ http_protocol.h	22 Oct 2004 15:22:04 -0000	1.93
>   @@ -338,9 +338,9 @@
>     * @param str The string to output
>     * @param r The current request
>     * @return The number of bytes sent
>   - * @deffunc int ap_rputs(const char *str, request_rec *r)
>   + * @deffunc apr_ssize_t ap_rputs(const char *str, request_rec *r)
>     */
>   -AP_DECLARE(int) ap_rputs(const char *str, request_rec *r);
>   +AP_DECLARE(apr_ssize_t) ap_rputs(const char *str, request_rec
*r);
>
>    /**
>     * Write a buffer for the current request
>   @@ -357,9 +357,9 @@
>     * @param r The current request
>     * @param ... The strings to write
>     * @return The number of bytes sent
>   - * @deffunc int ap_rvputs(request_rec *r, ...)
>   + * @deffunc apr_ssize_t ap_rvputs(request_rec *r, ...)
>     */
>   -AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...);
>   +AP_DECLARE_NONSTD(apr_ssize_t) ap_rvputs(request_rec *r,...);
>
>    /**
>     * Output data to the client in a printf format
>   @@ -367,9 +367,9 @@
>     * @param fmt The format string
>     * @param vlist The arguments to use to fill out the format
string
>     * @return The number of bytes sent
>   - * @deffunc int ap_vrprintf(request_rec *r, const char *fmt, 
> va_list vlist)
>   + * @deffunc apr_ssize_t ap_vrprintf(request_rec *r, const char 
> *fmt, va_list vlist)
>     */
>   -AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, 
> va_list vlist);
>   +AP_DECLARE(apr_ssize_t) ap_vrprintf(request_rec *r, const char 
> *fmt, va_list vlist);
>
>    /**
>     * Output data to the client in a printf format
>   @@ -377,9 +377,9 @@
>     * @param fmt The format string
>     * @param ... The arguments to use to fill out the format string
>     * @return The number of bytes sent
>   - * @deffunc int ap_rprintf(request_rec *r, const char *fmt, ...)
>   + * @deffunc apr_ssize_t ap_rprintf(request_rec *r, const char
*fmt, 
> ...)
>     */
>   -AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char 
> *fmt,...)
>   +AP_DECLARE_NONSTD(apr_ssize_t) ap_rprintf(request_rec *r, const 
> char *fmt,...)
>    				__attribute__((format(printf,2,3)));
>    /**
>     * Flush all of the data for the current request to the client
>   @@ -443,9 +443,9 @@
>     * @param bufsiz The size of the buffer
>     * @return Number of bytes inserted into the buffer.  When done 
> reading, 0
>     *         if EOF, or -1 if there was an error
>   - * @deffunc long ap_get_client_block(request_rec *r, char *buffer,

> apr_size_t bufsiz)
>   + * @deffunc apr_ssize_t ap_get_client_block(request_rec *r, char 
> *buffer, apr_size_t bufsiz)
>     */
>   -AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer,

> apr_size_t bufsiz);
>   +AP_DECLARE(apr_ssize_t) ap_get_client_block(request_rec *r, char 
> *buffer, apr_size_t bufsiz);
>
>    /**
>     * In HTTP/1.1, any method can have a body.  However, most GET 
> handlers
>
>
>
>   1.213     +4 -4      httpd-2.0/include/httpd.h
>
>   Index: httpd.h
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/include/httpd.h,v
>   retrieving revision 1.212
>   retrieving revision 1.213
>   diff -u -r1.212 -r1.213
>   --- httpd.h	12 Aug 2004 05:22:59 -0000	1.212
>   +++ httpd.h	22 Oct 2004 15:22:04 -0000	1.213
>   @@ -1091,7 +1091,7 @@
>        /** Pathname for ServerPath */
>        const char *path;
>        /** Length of path */
>   -    int pathlen;
>   +    apr_size_t pathlen;
>
>        /** Normal names for ServerAlias servers */
>        apr_array_header_t *names;
>   @@ -1244,7 +1244,7 @@
>     * address of field is shifted to the next non-comma,
non-whitespace
>     * character.  len is the length of the item excluding any 
> beginning whitespace.
>     */
>   -AP_DECLARE(const char *) ap_size_list_item(const char **field, int

> *len);
>   +AP_DECLARE(const char *) ap_size_list_item(const char **field, 
> apr_size_t *len);
>
>    /**
>     * Retrieve an HTTP header field list item, as separated by a
comma,
>   @@ -1587,7 +1587,7 @@
>     * @param c The character to search for
>     * @return The index of the first occurrence of c in str
>     */
>   -AP_DECLARE(int) ap_ind(const char *str, char c);	/* Sigh... */
>   +AP_DECLARE(apr_ssize_t) ap_ind(const char *str, char c);	/*
Sigh... 
> */
>
>    /**
>     * Search a string from right to left for the first occurrence of
a
>   @@ -1596,7 +1596,7 @@
>     * @param c The character to search for
>     * @return The index of the first occurrence of c in str
>     */
>   -AP_DECLARE(int) ap_rind(const char *str, char c);
>   +AP_DECLARE(apr_ssize_t) ap_rind(const char *str, char c);
>
>    /**
>     * Given a string, replace any bare " with \" .
>
>
>
>   1.55      +1 -1      httpd-2.0/include/scoreboard.h
>
>   Index: scoreboard.h
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/include/scoreboard.h,v
>   retrieving revision 1.54
>   retrieving revision 1.55
>   diff -u -r1.54 -r1.55
>   --- scoreboard.h	15 Sep 2004 12:08:39 -0000	1.54
>   +++ scoreboard.h	22 Oct 2004 15:22:04 -0000	1.55
>   @@ -164,7 +164,7 @@
>    int ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e t);
>    apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm,

> int detached);
>    void ap_init_scoreboard(void *shared_score);
>   -AP_DECLARE(int) ap_calc_scoreboard_size(void);
>   +AP_DECLARE(apr_size_t) ap_calc_scoreboard_size(void);
>    apr_status_t ap_cleanup_scoreboard(void *d);
>
>    AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, 
> apr_pool_t *p,
>
>
>
>   1.24      +2 -2      httpd-2.0/include/util_script.h
>
>   Index: util_script.h
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/include/util_script.h,v
>   retrieving revision 1.23
>   retrieving revision 1.24
>   diff -u -r1.23 -r1.24
>   --- util_script.h	9 Feb 2004 20:38:21 -0000	1.23
>   +++ util_script.h	22 Oct 2004 15:22:04 -0000	1.24
>   @@ -53,7 +53,7 @@
>     * @return The length of the path info
>     * @deffunc int ap_find_path_info(const char *uri, const char 
> *path_info)
>     */
>   -AP_DECLARE(int) ap_find_path_info(const char *uri, const char 
> *path_info);
>   +AP_DECLARE(apr_size_t) ap_find_path_info(const char *uri, const 
> char *path_info);
>
>    /**
>     * Add CGI environment variables required by HTTP/1.1 to the 
> request's
>   @@ -131,7 +131,7 @@
>     * @deffunc int ap_scan_script_header_err_core(request_rec *r,
char 
> *buffer, int (*getsfunc)(char *, int, void *), void *getsfunc_data)
>     */
>    AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r,
char 
> *buffer,
>   -				       int (*getsfunc) (char *, int,
void *),
>   +				       int (*getsfunc) (char *,
apr_size_t, void *),
>    				       void *getsfunc_data);
>
>    #ifdef __cplusplus
>
>
>
>   1.485     +2 -2      httpd-2.0/modules/http/http_protocol.c
>
>   Index: http_protocol.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/modules/http/http_protocol.c,v
>   retrieving revision 1.484
>   retrieving revision 1.485
>   diff -u -r1.484 -r1.485
>   --- http_protocol.c	29 Sep 2004 14:38:42 -0000	1.484
>   +++ http_protocol.c	22 Oct 2004 15:22:04 -0000	1.485
>   @@ -662,7 +662,7 @@
>     */
>    AP_DECLARE(int) ap_method_number_of(const char *method)
>    {
>   -    int len = strlen(method);
>   +    apr_size_t len = strlen(method);
>        int which = lookup_builtin_method(method, len);
>
>        if (which != UNKNOWN_METHOD)
>   @@ -1858,7 +1858,7 @@
>     * Returns 0 on End-of-body, -1 on error or premature chunk end.
>     *
>     */
>   -AP_DECLARE(long) ap_get_client_block(request_rec *r, char
*buffer,
>   +AP_DECLARE(apr_ssize_t) ap_get_client_block(request_rec *r, char 
> *buffer,
>                                         apr_size_t bufsiz)
>    {
>        apr_status_t rv;
>
>
>
>   1.288     +10 -7     httpd-2.0/server/core.c
>
>   Index: core.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/core.c,v
>   retrieving revision 1.287
>   retrieving revision 1.288
>   diff -u -r1.287 -r1.288
>   --- core.c	22 Sep 2004 18:21:29 -0000	1.287
>   +++ core.c	22 Oct 2004 15:22:04 -0000	1.288
>   @@ -2298,7 +2298,7 @@
>        }
>
>        cmd->server->path = arg;
>   -    cmd->server->pathlen = (int)strlen(arg);
>   +    cmd->server->pathlen = strlen(arg);
>        return NULL;
>    }
>
>   @@ -3009,19 +3009,20 @@
>    }
>
>    static apr_status_t writev_it_all(apr_socket_t *s,
>   -                                  struct iovec *vec, int nvec,
>   +                                  struct iovec *vec, apr_size_t 
> nvec,
>                                      apr_size_t len, apr_size_t 
> *nbytes)
>    {
>        apr_size_t bytes_written = 0;
>        apr_status_t rv;
>        apr_size_t n = len;
>   -    int i = 0;
>   +    apr_size_t i = 0;
>
>        *nbytes = 0;
>
>        /* XXX handle checking for non-blocking socket */
>        while (bytes_written != len) {
>   -        rv = apr_socket_sendv(s, vec + i, nvec - i, &n);
>   +        /* Cast to eliminate 64 bit warning */
>   +        rv = apr_socket_sendv(s, vec + i, (apr_int32_t)(nvec - i),

> &n);
>            *nbytes += n;
>            bytes_written += n;
>            if (rv != APR_SUCCESS)
>   @@ -3793,7 +3794,7 @@
>        core_net_rec *net = f->ctx;
>        core_ctx_t *ctx = net->in_ctx;
>        const char *str;
>   -    apr_size_t len;
>   +    apr_ssize_t len;
>
>        if (mode == AP_MODE_INIT) {
>            /*
>   @@ -4288,12 +4289,14 @@
>
>                memset(&hdtr, '\0', sizeof(hdtr));
>                if (nvec) {
>   -                hdtr.numheaders = nvec;
>   +                /* Cast to eliminate 64 bit warning */
>   +                hdtr.numheaders = (int)nvec;
>                    hdtr.headers = vec;
>                }
>
>                if (nvec_trailers) {
>   -                hdtr.numtrailers = nvec_trailers;
>   +                /* Cast to eliminate 64 bit warning */
>   +                hdtr.numtrailers = (int)nvec_trailers;
>                    hdtr.trailers = vec_trailers;
>                }
>
>
>
>
>   1.154     +7 -7      httpd-2.0/server/protocol.c
>
>   Index: protocol.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/protocol.c,v
>   retrieving revision 1.153
>   retrieving revision 1.154
>   diff -u -r1.153 -r1.154
>   --- protocol.c	21 Sep 2004 21:07:23 -0000	1.153
>   +++ protocol.c	22 Oct 2004 15:22:05 -0000	1.154
>   @@ -1387,7 +1387,7 @@
>        return c;
>    }
>
>   -AP_DECLARE(int) ap_rputs(const char *str, request_rec *r)
>   +AP_DECLARE(apr_ssize_t) ap_rputs(const char *str, request_rec *r)
>    {
>        apr_size_t len;
>
>   @@ -1441,9 +1441,9 @@
>        return APR_SUCCESS;
>    }
>
>   -AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, 
> va_list va)
>   +AP_DECLARE(apr_ssize_t) ap_vrprintf(request_rec *r, const char 
> *fmt, va_list va)
>    {
>   -    apr_size_t written;
>   +    apr_ssize_t written;
>        struct ap_vrprintf_data vd;
>        char vrprintf_buf[AP_IOBUFSIZE];
>
>   @@ -1461,7 +1461,7 @@
>        *(vd.vbuff.curpos) = '\0';
>
>        if (written != -1) {
>   -        int n = vd.vbuff.curpos - vrprintf_buf;
>   +        apr_size_t n = vd.vbuff.curpos - vrprintf_buf;
>
>            /* last call to buffer_output, to finish clearing the 
> buffer */
>            if (buffer_output(r, vrprintf_buf,n) != APR_SUCCESS)
>   @@ -1473,10 +1473,10 @@
>        return written;
>    }
>
>   -AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt,

> ...)
>   +AP_DECLARE_NONSTD(apr_ssize_t) ap_rprintf(request_rec *r, const 
> char *fmt, ...)
>    {
>        va_list va;
>   -    int n;
>   +    apr_ssize_t n;
>
>        if (r->connection->aborted)
>            return -1;
>   @@ -1488,7 +1488,7 @@
>        return n;
>    }
>
>   -AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r, ...)
>   +AP_DECLARE_NONSTD(apr_ssize_t) ap_rvputs(request_rec *r, ...)
>    {
>        va_list va;
>        const char *s;
>
>
>
>   1.139     +2 -1      httpd-2.0/server/request.c
>
>   Index: request.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/request.c,v
>   retrieving revision 1.138
>   retrieving revision 1.139
>   diff -u -r1.138 -r1.139
>   --- request.c	11 Oct 2004 19:27:29 -0000	1.138
>   +++ request.c	22 Oct 2004 15:22:05 -0000	1.139
>   @@ -1213,7 +1213,8 @@
>            /* We start now_merged from NULL since we want to build
>             * a locations list that can be merged to any vhost.
>             */
>   -        int len, sec_idx;
>   +        apr_size_t len;
>   +        int sec_idx;
>            int matches = cache->walked->nelts;
>            walk_walked_t *last_walk = 
> (walk_walked_t*)cache->walked->elts;
>            cache->cached = entry_uri;
>
>
>
>   1.78      +1 -1      httpd-2.0/server/scoreboard.c
>
>   Index: scoreboard.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/scoreboard.c,v
>   retrieving revision 1.77
>   retrieving revision 1.78
>   diff -u -r1.77 -r1.78
>   --- scoreboard.c	22 Sep 2004 13:35:31 -0000	1.77
>   +++ scoreboard.c	22 Oct 2004 15:22:05 -0000	1.78
>   @@ -88,7 +88,7 @@
>        return APR_SUCCESS;
>    }
>
>   -AP_DECLARE(int) ap_calc_scoreboard_size(void)
>   +AP_DECLARE(apr_size_t) ap_calc_scoreboard_size(void)
>    {
>        ap_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &thread_limit);
>        ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &server_limit);
>
>
>
>   1.151     +26 -19    httpd-2.0/server/util.c
>
>   Index: util.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/util.c,v
>   retrieving revision 1.150
>   retrieving revision 1.151
>   diff -u -r1.150 -r1.151
>   --- util.c	15 Sep 2004 11:44:05 -0000	1.150
>   +++ util.c	22 Oct 2004 15:22:05 -0000	1.151
>   @@ -451,7 +451,7 @@
>    AP_DECLARE(void) ap_getparents(char *name)
>    {
>        char *next;
>   -    int l, w, first_dot;
>   +    apr_ssize_t l, w, first_dot;
>
>        /* Four paseses, as per RFC 1808 */
>        /* a) remove ./ path segments */
>   @@ -480,7 +480,7 @@
>        while (name[l] != '\0') {
>            if (name[l] == '.' && name[l + 1] == '.' &&
IS_SLASH(name[l 
> + 2])
>                && (l == 0 || IS_SLASH(name[l - 1]))) {
>   -            register int m = l + 3, n;
>   +            register apr_ssize_t m = l + 3, n;
>
>                l = l - 2;
>                if (l >= 0) {
>   @@ -592,7 +592,7 @@
>    {
>        const char *last_slash = ap_strrchr_c(s, '/');
>        char *d;
>   -    int l;
>   +    apr_size_t l;
>
>        if (last_slash == NULL) {
>            return apr_pstrdup(p, "");
>   @@ -623,7 +623,7 @@
>    AP_DECLARE(char *) ap_getword(apr_pool_t *atrans, const char 
> **line, char stop)
>    {
>        const char *pos = *line;
>   -    int len;
>   +    apr_size_t len;
>        char *res;
>
>        while ((*pos != stop) && *pos) {
>   @@ -653,7 +653,7 @@
>    AP_DECLARE(char *) ap_getword_white(apr_pool_t *atrans, const char

> **line)
>    {
>        const char *pos = *line;
>   -    int len;
>   +    apr_size_t len;
>        char *res;
>
>        while (!apr_isspace(*pos) && *pos) {
>   @@ -705,12 +705,12 @@
>     * all honored
>     */
>
>   -static char *substring_conf(apr_pool_t *p, const char *start, int

> len,
>   +static char *substring_conf(apr_pool_t *p, const char *start, 
> apr_size_t len,
>                                char quote)
>    {
>        char *result = apr_palloc(p, len + 2);
>        char *resp = result;
>   -    int i;
>   +    apr_size_t i;
>
>        for (i = 0; i < len; ++i) {
>            if (start[i] == '\\' && (start[i + 1] == '\\'
>   @@ -887,11 +887,13 @@
>        return (int)EOF;
>    }
>
>   -static void *cfg_getstr(void *buf, size_t bufsiz, void *param)
>   +static void *cfg_getstr(void *buf, apr_size_t bufsiz, void
*param)
>    {
>        apr_file_t *cfp = (apr_file_t *) param;
>        apr_status_t rv;
>   -    rv = apr_file_gets(buf, bufsiz, cfp);
>   +
>   +    /* Cast to eliminate 64 bit warning */
>   +    rv = apr_file_gets(buf, (int)bufsiz, cfp);
>        if (rv == APR_SUCCESS) {
>            return buf;
>        }
>   @@ -971,7 +973,7 @@
>        new_cfg->param = file;
>        new_cfg->name = apr_pstrdup(p, name);
>        new_cfg->getch = (int (*)(void *)) cfg_getch;
>   -    new_cfg->getstr = (void *(*)(void *, size_t, void *)) 
> cfg_getstr;
>   +    new_cfg->getstr = (void *(*)(void *, apr_size_t, void *)) 
> cfg_getstr;
>        new_cfg->close = (int (*)(void *)) cfg_close;
>        new_cfg->line_number = 0;
>        *ret_cfg = new_cfg;
>   @@ -1152,7 +1154,7 @@
>     * of field is shifted to the next non-comma, non-whitespace 
> character.
>     * len is the length of the item excluding any beginning
whitespace.
>     */
>   -AP_DECLARE(const char *) ap_size_list_item(const char **field, int

> *len)
>   +AP_DECLARE(const char *) ap_size_list_item(const char **field, 
> apr_size_t *len)
>    {
>        const unsigned char *ptr = (const unsigned char *)*field;
>        const unsigned char *token;
>   @@ -1218,7 +1220,8 @@
>        const unsigned char *ptr;
>        unsigned char *pos;
>        char *token;
>   -    int addspace = 0, in_qpair = 0, in_qstr = 0, in_com = 0, 
> tok_len = 0;
>   +    int addspace = 0, in_qpair = 0, in_qstr = 0, in_com = 0;
>   +    apr_size_t tok_len = 0;
>
>        /* Find the beginning and maximum length of the list item so 
> that
>         * we can allocate a buffer for the new string and reset the 
> field.
>   @@ -1411,7 +1414,7 @@
>        const char *ptr = *accept_line;
>        const char *tok_start;
>        char *token;
>   -    int tok_len;
>   +    apr_size_t tok_len;
>
>        /* Find first non-white byte */
>
>   @@ -1484,7 +1487,8 @@
>    AP_DECLARE(int) ap_find_last_token(apr_pool_t *p, const char
*line,
>                                       const char *tok)
>    {
>   -    int llen, tlen, lidx;
>   +    apr_size_t llen, tlen;
>   +    apr_ssize_t lidx;
>
>        if (!line)
>            return 0;
>   @@ -1969,7 +1973,7 @@
>        return (x ? 1 : 0);                /* If the first character
is 
> ':', it's broken, too */
>    }
>
>   -AP_DECLARE(int) ap_ind(const char *s, char c)
>   +AP_DECLARE(apr_ssize_t) ap_ind(const char *s, char c)
>    {
>        const char *p = ap_strchr_c(s, c);
>
>   @@ -1978,7 +1982,7 @@
>        return p - s;
>    }
>
>   -AP_DECLARE(int) ap_rind(const char *s, char c)
>   +AP_DECLARE(apr_ssize_t) ap_rind(const char *s, char c)
>    {
>        const char *p = ap_strrchr_c(s, c);
>
>   @@ -2079,10 +2083,13 @@
>    AP_DECLARE(char *) ap_pbase64encode(apr_pool_t *p, char *string)
>    {
>        char *encoded;
>   -    int l = strlen(string);
>   +    apr_size_t l = strlen(string);
>   +
>   +    /* Cast to eliminate 64 bit warning */
>   +    encoded = (char *) apr_palloc(p, 1 + 
> apr_base64_encode_len((int)l));
>
>   -    encoded = (char *) apr_palloc(p, 1 +
apr_base64_encode_len(l));
>   -    l = apr_base64_encode(encoded, string, l);
>   +    /* Cast to eliminate 64 bit warning */
>   +    l = apr_base64_encode(encoded, string, (int)l);
>        encoded[l] = '\0'; /* make binary sequence into string */
>
>        return encoded;
>
>
>
>   1.92      +13 -12    httpd-2.0/server/util_script.c
>
>   Index: util_script.c
>  
===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/util_script.c,v
>   retrieving revision 1.91
>   retrieving revision 1.92
>   diff -u -r1.91 -r1.92
>   --- util_script.c	1 Aug 2004 01:12:30 -0000	1.91
>   +++ util_script.c	22 Oct 2004 15:22:05 -0000	1.92
>   @@ -283,10 +283,10 @@
>     * and find as much of the two that match as possible.
>     */
>
>   -AP_DECLARE(int) ap_find_path_info(const char *uri, const char 
> *path_info)
>   +AP_DECLARE(apr_size_t) ap_find_path_info(const char *uri, const 
> char *path_info)
>    {
>   -    int lu = strlen(uri);
>   -    int lp = strlen(path_info);
>   +    apr_ssize_t lu = strlen(uri);
>   +    apr_size_t lp = strlen(path_info);
>
>        while (lu-- && lp-- && uri[lu] == path_info[lp]);
>
>   @@ -354,7 +354,7 @@
>            apr_table_setn(e, "SCRIPT_NAME", r->uri);
>        }
>        else {
>   -        int path_info_start = ap_find_path_info(r->uri, 
> r->path_info);
>   +        apr_size_t path_info_start = ap_find_path_info(r->uri, 
> r->path_info);
>
>            apr_table_setn(e, "SCRIPT_NAME",
>                          apr_pstrndup(r->pool, r->uri, 
> path_info_start));
>   @@ -394,12 +394,12 @@
>    }
>
>    AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r,
char 
> *buffer,
>   -                                       int (*getsfunc) (char *, 
> int, void *),
>   +                                       int (*getsfunc) (char *, 
> apr_size_t, void *),
>                                           void *getsfunc_data)
>    {
>        char x[MAX_STRING_LEN];
>        char *w, *l;
>   -    int p;
>   +    apr_size_t p;
>        int cgi_status = HTTP_OK;
>        apr_table_t *merge;
>        apr_table_t *cookie_table;
>   @@ -581,9 +581,10 @@
>        return OK;
>    }
>
>   -static int getsfunc_FILE(char *buf, int len, void *f)
>   +static int getsfunc_FILE(char *buf, apr_size_t len, void *f)
>    {
>   -    return apr_file_gets(buf, len, (apr_file_t *) f) ==
APR_SUCCESS;
>   +    /* Cast to eliminate 64 bit warning */
>   +    return apr_file_gets(buf, (int)len, (apr_file_t *) f) == 
> APR_SUCCESS;
>    }
>
>    AP_DECLARE(int) ap_scan_script_header_err(request_rec *r, 
> apr_file_t *f,
>   @@ -592,7 +593,7 @@
>        return ap_scan_script_header_err_core(r, buffer,
getsfunc_FILE, 
> f);
>    }
>
>   -static int getsfunc_BRIGADE(char *buf, int len, void *arg)
>   +static int getsfunc_BRIGADE(char *buf, apr_size_t len, void *arg)
>    {
>        apr_bucket_brigade *bb = (apr_bucket_brigade *)arg;
>        const char *dst_end = buf + len - 1; /* leave room for 
> terminating null */
>   @@ -650,11 +651,11 @@
>        const char *curpos;
>    };
>
>   -static int getsfunc_STRING(char *w, int len, void *pvastrs)
>   +static int getsfunc_STRING(char *w, apr_size_t len, void
*pvastrs)
>    {
>        struct vastrs *strs = (struct vastrs*) pvastrs;
>        const char *p;
>   -    int t;
>   +    apr_size_t t;
>
>        if (!strs->curpos || !*strs->curpos)
>            return 0;
>   @@ -674,7 +675,7 @@
>        }
>        else
>            strs->curpos += t;
>   -    return t;
>   +    return (int)t;
>    }
>
>    /* ap_scan_script_header_err_strs() accepts additional const char*

> args...
>
>
>
>
>


Re: cvs commit: httpd-2.0/server core.c protocol.c request.c scoreboard.c util.c util_script.c

Posted by Allan Edwards <ak...@us.ibm.com>.
Brad Nicholes wrote:
> -1 as well.  This is now causing compiler errors on NetWare.  Please
> revert this patch!

Can you provide an indication of exactly what broke so we
will know what to avoid in future. Or was the breakage
actually due to the the mod_cache problem reported
last night?

Thanks, Allan