c++/10269: ncurses function in class causes malloc() syscall to loop infinitly

fr33z3@sources.redhat.com fr33z3@sources.redhat.com
Sun Mar 30 17:44:00 GMT 2003


>Number:         10269
>Category:       c++
>Synopsis:       ncurses function in class causes malloc() syscall to loop infinitly
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 30 11:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Tam
>Release:        gcc version 2.95.4 20011002 (Debian prerelease) and also 3.2.3 20030309 (Debian prerelease)
>Organization:
>Environment:
Debian sarge on i686 AMD Athlon(tm) XP 2000+
Libs:
libform.so.5 => /usr/lib/libform.so.5 (0x4001c000)
libncurses.so.5 => /lib/libncurses.so.5 (0x40028000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40067000)
libm.so.6 => /lib/libm.so.6 (0x400b0000)
libc.so.6 => /lib/libc.so.6 (0x400d1000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>Description:
The Syscall malloc() loops infinitly when it should allocate lets say.. more than 512b of memory (on my system) but allocating only a few bytes works well. It also ran on a similar system to mine using the libncurses.so.4 - so it's either an error in gcc or in libcurses - I don't know for sure...

For further Infos and strange things have a look at the comments in the short c++ source code.
>How-To-Repeat:
g++ -lform -lcurses -o ncursesInClass ncursesInClass.cpp
and run the binary

you can use g++ 2.95 or 3.2 as well to compile.
>Fix:
no idea...
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="ncursesInClass.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ncursesInClass.cpp"

I2luY2x1ZGUgPGZvcm0uaD4KI2luY2x1ZGUgPGN1cnNlcy5oPgoKLyoqKiogY2xhc3Mgc3R1ZmYg
KioqKi8KCmNsYXNzIG1hc2sKewoJcHVibGljOgoJCUZJRUxEICptX2ZpZWxkc1syXTsKCQlGT1JN
ICAqbV9mb3JtOwoJCVdJTkRPVyAqbV93aW47CgkJbWFzaygpOwoJCX5tYXNrKCk7Cn07CgptYXNr
OjptYXNrKCkKewoJaW5pdHNjcigpOwoJbV93aW49IG5ld3dpbigzLCA0NCwgTElORVMvMi0xLCBD
T0xTLzItMjIpOwoJbV9maWVsZHNbMF0gPSBuZXdfZmllbGQoMSwgMzIsIDAsIDAsIDAsIDApOwoJ
bV9maWVsZHNbMV0gPSBOVUxMOwoJbV9mb3JtPSBuZXdfZm9ybShtX2ZpZWxkcyk7CglzZXRfZm9y
bV93aW4obV9mb3JtLCBtX3dpbik7CglzZXRfZm9ybV9zdWIobV9mb3JtLCBkZXJ3aW4obV93aW4s
IDEsIDMyLCAxLCAxMSkpOwp9CgptYXNrOjp+bWFzaygpCnsKCWZyZWVfZm9ybShtX2Zvcm0pOyAv
LyBDb21tZW50IHRoaXMgbGluZSB0byBzdG9wIGluZmluaXRlIGxvb3BpbmcKCWZyZWVfZmllbGQo
bV9maWVsZHNbMF0pOwoJZGVsd2luKG1fd2luKTsKCWVuZHdpbigpOwp9CgovKioqKiBzYW1lIHN0
dWZmIGluIGZ1bmN0aW9uICoqKiovCgp2b2lkIG1hc2tmdW5jdGlvbigpCnsKCUZJRUxEICptX2Zp
ZWxkc1syXTsKCUZPUk0gICptX2Zvcm07CglXSU5ET1cgKm1fd2luOwoJaW5pdHNjcigpOwoJbV93
aW49IG5ld3dpbigzLCA0NCwgTElORVMvMi0xLCBDT0xTLzItMjIpOwoJbV9maWVsZHNbMF0gPSBu
ZXdfZmllbGQoMSwgMzIsIDAsIDAsIDAsIDApOwoJbV9maWVsZHNbMV0gPSBOVUxMOwoJbV9mb3Jt
PSBuZXdfZm9ybShtX2ZpZWxkcyk7CglzZXRfZm9ybV93aW4obV9mb3JtLCBtX3dpbik7CglzZXRf
Zm9ybV9zdWIobV9mb3JtLCBkZXJ3aW4obV93aW4sIDEsIDMyLCAxLCAxMSkpOwoJZnJlZV9mb3Jt
KG1fZm9ybSk7IC8vIE5vIHByb2JsZW0gd2l0aCB0aGF0IGluIGEgc2ltcGxlIGZ1bmN0aW9uCglm
cmVlX2ZpZWxkKG1fZmllbGRzWzBdKTsKCWRlbHdpbihtX3dpbik7CgllbmR3aW4oKTsKfQoKLyoq
KiogbWFpbiAqKioqLwoKaW50IG1haW4oKQp7CgkvLyBubyBpZigpIC0gbm8gbG9vcGluZywgZXZl
biBpZiBmcmVlX2Zvcm0oKSBpbiBjbGFzcyBpcyB1c2VkCglpZiAoMSkgewkKCQkKCS8vIG1hc2tm
dW5jdGlvbigpOyAvLyB3b3JrcyBmaW5lIHdpdGhvdXQgYW4gb2JqZWN0CgltYXNrIG9tYXNrOwoJ
b21hc2sufm1hc2soKTsKCX0KCQoJY2hhciAqYXJyPSBuZXcgY2hhclsxMDI0XTsJLy8gVGhpcyBp
cyB0aGUgcG9pbnQgd2hlcmUgdGhlIGxvb3BpbmcgYmVnaW5zCgkJCQkJCQkJLy8gdGhlIG1hbGxv
YygpIHN5c2NhbGwgY2F1c2VzIGl0IC0gZHVubm8gd2h5CQkJCQkJCQkJCgkKCWRlbGV0ZSBhcnI7
CglyZXR1cm4gMDsKfQo=



More information about the Gcc-bugs mailing list