Date: Sun, 22 Jul 2001 21:41:12 +0200 (CEST) From: goran.lowkrantz@ismobile.com To: FreeBSD-gnats-submit@freebsd.org Subject: bin/29218: Missing pointer increment in wcsspn result in eternal loop Message-ID: <200107221941.f6MJfCD17465@skade.lule2.infologigruppen.se>
index | next in thread | raw e-mail
>Number: 29218
>Category: bin
>Synopsis: Missing pointer increment in wcsspn result in eternal loop
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jul 25 06:50:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Goran Lowkrantz
>Release: FreeBSD 4.3-STABLE i386
>Organization:
isMobile AB
>Environment:
System: FreeBSD skade.lule2.infologigruppen.se 4.3-STABLE FreeBSD 4.3-STABLE #3: Fri Jul 20 22:45:53 CEST 2001 root@midgard.lule2.infologigruppen.se:/usr/src/sys/compile/SKADE i386
>Description:
In the libc function wcsspn, the search set pointer is not incremented. As a result, any call to this function results in an eternal loop.
>How-To-Repeat:
#include <cwchar>
#include <iostream>
int main(int argc, char* argv[])
{
wchar_t * x = L"abcdefghijkabcdefghijk";
size_t y = wcsspn(x, L"abcdf");
cerr << y << endl;
y = wcsspn(x, L"mno");
cerr << y << endl;
return 0;
}
>Fix:
--- wcsspn.c.orig Sun Jul 22 21:33:35 2001
+++ wcsspn.c Sun Jul 22 21:28:45 2001
@@ -50,6 +50,7 @@
while (*q) {
if (*p == *q)
break;
+ ++q;
}
if (!*q)
goto done;
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107221941.f6MJfCD17465>
