Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#3412 closed bug (fixed)

stdio library code dishonors BUFSIZ for setbuf()

Reported by: schily Owned by: axeld
Priority: normal Milestone: R1
Component: - General Version: R1/pre-alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

If a program calls:

char buf[BUFSIZ];

setbuf(stdout, buf);

then call many:
putc(char, fp);

stdio still tries to write more than BUFSIZ (1024) bytes into the buffer and overwrites it. This causes other global varibables in the binary (located past buf) to be overwritten.

This bug seems to be related to bug #3411

Change History (3)

comment:1 Changed 10 years ago by schily

Even with haiku-pre-alpha-gcc4-hrev31728-raw.zip BUFSIZE is not honored and the stdio code in libc overwrites the buffer resulting in a core dump.

comment:2 Changed 10 years ago by bonefish

Resolution: fixed
Status: newclosed

Fixed in hrev31776.

comment:3 Changed 10 years ago by schily

OK, the bug seems to be fixed now. The program that did dump core no longer fails.

Note: See TracTickets for help on using tickets.