This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/71422] New: Total size of static objects is not limited
- From: "ch3root at openwall dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 05 Jun 2016 15:20:45 +0000
- Subject: [Bug c/71422] New: Total size of static objects is not limited
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71422
Bug ID: 71422
Summary: Total size of static objects is not limited
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: ch3root at openwall dot com
Target Milestone: ---
Shouldn't gcc loudly fail when it cannot lay static objects out without
wrapping around the end of the address space?
Otherwise the resulting binary can, for example, crash. Or silently give wrong
answer like in the example below.
Source code:
----------------------------------------------------------------------
#include <stdint.h>
#include <stdio.h>
char a[SIZE_MAX / 2];
char b[SIZE_MAX / 2];
char c[SIZE_MAX / 2];
int main(int argc, char **argv)
{
(void)argv;
a[argc] = 123;
printf("%d\n", b[argc]);
printf("&a = %p\n", (void *)&a);
printf("&b = %p\n", (void *)&b);
printf("&c = %p\n", (void *)&c);
}
----------------------------------------------------------------------
Results:
----------------------------------------------------------------------
$ gcc -std=c11 -pedantic -Wall -Wextra -O3 -m32 test.c && ./a.out
123
&a = 0x8049740
&b = 0x8049740
&c = 0x88049740
----------------------------------------------------------------------
gcc version: gcc (GCC) 7.0.0 20160604 (experimental)