64bit bug in multipart/formdata uploads
Jim Hull <[email protected]> Tue, 01 May 2007 17:10:37 -0700
| Newsgroups | gmane.comp.gcc.cgicc.bugs |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------040208010803040107040102
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
This is a simple string::size_type vs u_int bug I found today while
testing our tools on a 64bit platform.
inside extractBetween(), 'start' is declared as 'unsigned int' and then
tested against std::string::npos, which on a 64bit system will always be
false.
Iv'e attached a patch with the fix.
Thanks!
Jim
--------------040208010803040107040102
Content-Type: text/plain;
name="cgicc-3.2.3-badformdata.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="cgicc-3.2.3-badformdata.patch"
diff -ruwN cgicc-3.2.3/cgicc/CgiUtils.cpp cgicc-3.2.3-jim/cgicc/CgiUtils.cpp
--- cgicc-3.2.3/cgicc/CgiUtils.cpp 2004-06-12 08:24:31.000000000 -0700
+++ cgicc-3.2.3-jim/cgicc/CgiUtils.cpp 2007-05-01 16:56:30.000000000 -0700
@@ -211,7 +211,7 @@
const std::string& separator2)
{
std::string result;
- unsigned int start, limit;
+ std::string::size_type start, limit;
start = data.find(separator1, 0);
if(start != std::string::npos) {
--------------040208010803040107040102
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
bug-cgicc mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-cgicc
--------------040208010803040107040102--