diff options
| author | Drazen Borkovic <borkovic@users.noreply.github.com> | 2015-10-26 22:22:54 -0700 |
|---|---|---|
| committer | Toby Goodwin <toby@paccrat.org> | 2017-05-26 22:12:26 +0100 |
| commit | d8946406165ccfc458ff418aec465d67fa61ec1e (patch) | |
| tree | fc5568d8fe63d2484656e8823e393a11b4a22e02 /fn.c | |
| parent | 6eb8030b2dcc91cf689394056741f47408411d69 (diff) | |
When running rc on the following script, rc crashes.
fn f1 { v=x { }}
fn f2 { f1 1; f1 2 }
f2
whatis
Valgrind stack:
==10068== Invalid read of size 8
==10068== at 0x40EFB1: varlookup (var.c:84)
==10068== by 0x407B04: whatare_all_vars (hash.c:311)
==10068== by 0x401E60: b_whatis (builtins.c:323)
==10068== by 0x402E32: exec (exec.c:92)
==10068== by 0x40F997: walk (walk.c:39)
The reason is that vp[h].p is freed in delete_var(), but the pointer is kept.
Later the pointer is found to be non-null and dereferenced causing the crash.
Diffstat (limited to 'fn.c')
0 files changed, 0 insertions, 0 deletions