This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c++/344: Passing >1 buffer created in parm list with alloca seg faults on x86



>Number:         344
>Category:       c++
>Synopsis:       Passing >1 buffer created in parm list with alloca seg faults on x86
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jun 23 08:46:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Ben Sander
>Release:        gcc version 2.95.2 19991024 (release)
>Organization:
>Environment:
Linux 2.2.14-12 #1 Tue Apr 25 13:04:07 EDT 2000 i686 unknown
>Description:
Enclosed short program calls alloca twice in the argument
list:

printf ("Tag1=%s, Tag2=%s\n", tag_str(0x256, (char*)alloca(20)), tag_str(i, (char*)alloca(30)));

a.out seg faults when printf is called.  
From looking at the disasm, gcc pushes the pointer to the 
first alloca buffer onto the stack before the second alloca
moves the stack pointer.  (line 72 of the disam: pushl %eax)

Before the call to printf from main, the stack looks like:
    -76 : storage for first alloca
     ...
    -44   Ptr to first alloca storage
    -40   Storage for second alloca
    ...
    - 8   Ptr to second alloca storage.
    - 4   Format string ptr
  esp   ->

The pointer to the first alloca needs to be on the stack 
at esp-12.
>How-To-Repeat:
> g++ t.ii
> a.out
buff=0x   5
buff=0x 256
Segmentation fault
>Fix:
Rewrite code to manually save alloca'd ptrs?
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="t.ii.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="t.ii.gz"

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
h5fF/wOZSjoFCHkAAA==

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]