diff options
author | Alan Modra <amodra@gmail.com> | 2025-01-11 16:16:14 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2025-01-17 08:37:29 +1030 |
commit | 64d357bc45f26eae5d8316cec740749727fa66b7 (patch) | |
tree | ef1d703c0ed0fe2329132724fa58451b391d4e4c | |
parent | 8f5e60c87785008067c63772d9c651af626eef88 (diff) | |
download | gdb-64d357bc45f26eae5d8316cec740749727fa66b7.zip gdb-64d357bc45f26eae5d8316cec740749727fa66b7.tar.gz gdb-64d357bc45f26eae5d8316cec740749727fa66b7.tar.bz2 |
ld parser buffer leak
* ldlex.l (<<EOF>>): yy_delete_buffer current.
(yy_create_string_buffer): Use yyalloc.
-rw-r--r-- | ld/ldlex.l | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -477,6 +477,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* } <<EOF>> { + yy_delete_buffer (YY_CURRENT_BUFFER); include_stack_ptr--; if (include_stack_ptr == 0) { @@ -528,13 +529,13 @@ yy_create_string_buffer (const char *string, size_t size) { YY_BUFFER_STATE b; - b = xmalloc (sizeof (struct yy_buffer_state)); + b = yyalloc (sizeof (struct yy_buffer_state)); b->yy_input_file = 0; b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = xmalloc ((size_t) b->yy_buf_size + 3); + b->yy_ch_buf = yyalloc (b->yy_buf_size + 3); b->yy_ch_buf[0] = '\n'; strcpy (b->yy_ch_buf+1, string); |