Kaydet (Commit) 85717c76 authored tarafından Michael W. Hudson's avatar Michael W. Hudson

backport tim_one's checkin of

    revision 2.38 of mmapmodule.c

SF bug 515943:  searching for data with \0 in mmap.
mmap_find_method():  this obtained the string to find via s#, but it
ignored its length, acting as if it were \0-terminated instead.

Someone please run on Linux too (the extended test_mmap works on Windows).

Bugfix candidate.
üst db175266
......@@ -251,20 +251,16 @@ mmap_find_method(mmap_object *self,
start = 0;
else if ((size_t)start > self->size)
start = self->size;
p = self->data + start;
while (p < e) {
char *s = p;
char *n = needle;
while ((s<e) && (*n) && !(*s-*n)) {
s++, n++;
}
if (!*n) {
for (p = self->data + start; p + len <= e; ++p) {
int i;
for (i = 0; i < len && needle[i] == p[i]; ++i)
/* nothing */;
if (i == len) {
return Py_BuildValue (
"l",
(long) (p - self->data));
}
p++;
}
return Py_BuildValue ("l", (long) -1);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment