bug on x86_64 + patch
Martin Oberzalek <[email protected]> Tue, 22 Feb 2005 21:11:51 +0100
| Newsgroups | gmane.comp.gcc.cgicc.bugs |
|---|---|
| Message-ID | <[email protected]> |
--Boundary-00=_HI5GCHy7/NerzSn
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Hello,
There is a bug in CgiUtils.cpp that effects forms with multipart/form-data =
on=20
platforms where sizeof(unsigned) < sizeof( std::string::size_type)
// locate data between separators, and return it
std::string
cgicc::extractBetween(const std::string& data,
const std::string& separator1,
const std::string& separator2)
{
std::string result;
unsigned int start, limit;
start =3D data.find(separator1, 0);
if(start !=3D std::string::npos) {
start +=3D separator1.length();
limit =3D data.find(separator2, start);
if(limit !=3D std::string::npos)
result =3D data.substr(start, limit - start);
}
return result;
}
Since std::string::npos is a castet -1. The if statement will always be tru=
e.
The patch below fixes this.
Greetings, Martin!
diff -r cgicc-3.2.3-p1/cgicc/Cgicc.cpp cgicc-3.2.3/cgicc/Cgicc.cpp
40d39
<
diff -r cgicc-3.2.3-p1/cgicc/CgiUtils.cpp cgicc-3.2.3/cgicc/CgiUtils.cpp
214c214
< std::string::size_type start, limit;
=2D--
> unsigned int start, limit;
222,223c222,223
< }
<
=2D--
> }
>
=2D-=20
Gebrauchtwagen =3D> http://www.austromobil.at
Genie=DFen Sie die Fahrt!
--Boundary-00=_HI5GCHy7/NerzSn
Content-Type: text/x-diff; charset="us-ascii"; name="cgicc-3.2.3-x86_64-patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="cgicc-3.2.3-x86_64-patch"
diff -r cgicc-3.2.3-p1/cgicc/Cgicc.cpp cgicc-3.2.3/cgicc/Cgicc.cpp
40d39
<
diff -r cgicc-3.2.3-p1/cgicc/CgiUtils.cpp cgicc-3.2.3/cgicc/CgiUtils.cpp
214c214
< std::string::size_type start, limit;
---
> unsigned int start, limit;
222,223c222,223
< }
<
---
> }
>
--Boundary-00=_HI5GCHy7/NerzSn
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
--Boundary-00=_HI5GCHy7/NerzSn--