Return-Path: Delivered-To: apache-cvs-archive@hyperreal.org Received: (qmail 29057 invoked by uid 6000); 2 Dec 1998 08:24:42 -0000 Received: (qmail 29049 invoked by alias); 2 Dec 1998 08:24:41 -0000 Delivered-To: apache-1.3-cvs@hyperreal.org Received: (qmail 29045 invoked by uid 168); 2 Dec 1998 08:24:40 -0000 Date: 2 Dec 1998 08:24:40 -0000 Message-ID: <19981202082440.29044.qmail@hyperreal.org> From: rse@hyperreal.org To: apache-1.3-cvs@hyperreal.org Subject: cvs commit: apache-1.3/src/modules/standard mod_rewrite.c Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org rse 98/12/02 00:24:40 Modified: src CHANGES src/modules/standard mod_rewrite.c Log: Fixed possible (but harmless in practice) bug in the DBM lookup procedure of mod_rewrite: very long keys were truncated. Revision Changes Path 1.1156 +4 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1155 retrieving revision 1.1156 diff -u -r1.1155 -r1.1156 --- CHANGES 1998/12/02 06:12:09 1.1155 +++ CHANGES 1998/12/02 08:24:35 1.1156 @@ -1,5 +1,9 @@ Changes with Apache 1.3.4 + *) Fixed possible (but harmless in practice) bug in the DBM lookup + procedure of mod_rewrite: very long keys were truncated. + [Ralf S. Engelschall] + *) There is no longer a _default_ path layout for APACI configure. This means the user _HAS_ to specifiy a path layout _explicitly_. 1.132 +4 -3 apache-1.3/src/modules/standard/mod_rewrite.c Index: mod_rewrite.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_rewrite.c,v retrieving revision 1.131 retrieving revision 1.132 diff -u -r1.131 -r1.132 --- mod_rewrite.c 1998/10/28 15:01:18 1.131 +++ mod_rewrite.c 1998/12/02 08:24:39 1.132 @@ -2877,12 +2877,13 @@ char buf[MAX_STRING_LEN]; dbmkey.dptr = key; - dbmkey.dsize = (strlen(key) < sizeof(buf) - 1 ? - strlen(key) : sizeof(buf)-1); + dbmkey.dsize = strlen(key); if ((dbmfp = dbm_open(file, O_RDONLY, 0666)) != NULL) { dbmval = dbm_fetch(dbmfp, dbmkey); if (dbmval.dptr != NULL) { - memcpy(buf, dbmval.dptr, dbmval.dsize); + memcpy(buf, dbmval.dptr, + dbmval.dsize < sizeof(buf)-1 ? + dbmval.dsize : sizeof(buf)-1 ); buf[dbmval.dsize] = '\0'; value = ap_pstrdup(r->pool, buf); }