ecl/src/c
Daniel Kochmański f04f0ac160 bytevm: fix a possible segmentation fault in OP_PUSHKEYS
The issue was revealed by registering long (EQL LIST) elements as cons types --
essentially we've reached the frame size limit in the middle of the loop, the
frame was resized, but the pointer `first' was relative to the old frame base.

The solution is to reinitialize the pointer before each iteration.
2025-08-27 10:46:58 +02:00
..
arch cleanup: update license to lgpl-2.1+ in both headers and text 2024-01-14 12:22:27 +01:00
clos clos: builtin classes have the same index independent of configure options 2025-07-19 16:33:22 +02:00
coverity The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
ffi remove bogus #undef bool statement 2025-05-04 18:02:59 +02:00
numbers Make (log x 0) return 0 (as per the spec) 2023-04-15 15:30:04 +02:00
printer bytecodes: add a new slot nlcl denoting the maximal number of locals 2025-05-09 13:55:59 +02:00
reader bignums: fix wrong usage of bignum registers 2020-01-17 18:03:26 +01:00
streams streams: bivalent stream signals a condition for bytes out of range 2025-08-11 10:01:40 +02:00
threads core: move atomics from threads directory to core 2025-07-26 16:59:42 +02:00
unicode unicode: update unicode character database to version 13.0.0 2021-05-07 21:09:09 +02:00
all_symbols.d core: fix a race condition between core symbols and the gc 2025-05-20 13:57:21 +02:00
alloc_2.d streams: implement new interfaces for unreading and peeking bytes 2025-08-11 10:01:37 +02:00
apply.d apply.d: fix deprecation warnings for function calls without prototypes 2024-03-24 18:08:49 +01:00
array.d rename the operator ecl_make_stack -> ecl_make_vector 2025-03-31 20:42:17 +02:00
assignment.d bytevm: don't use ecl_fdefinition for OP_FUNCTION 2025-03-27 22:45:34 +01:00
atomic.d core: move atomics from threads directory to core 2025-07-26 16:59:42 +02:00
backq.d port to C23 standard 2025-04-26 18:13:40 +02:00
big.d fix mingw build 2025-04-13 16:54:19 +02:00
big_ll.d ecl_bignum: access the internal object with a macro ecl_bignum 2022-05-06 10:13:08 +02:00
cfun.d cmp: faster function calls for C compatible variadic dispatch 2024-03-24 18:08:34 +01:00
cfun_dispatch.d apply.d: fix deprecation warnings for function calls without prototypes 2024-03-24 18:08:49 +01:00
char_ctype.d char_ctype.d: use new ucd.h header features instead of hardcoded constants 2021-05-07 21:09:09 +02:00
character.d fix some compiler warnings 2020-12-29 18:18:26 +01:00
cinit.d port to C23 standard 2025-04-26 18:13:40 +02:00
cmpaux.d compiler: better checking whether a variable may be introduced 2021-11-19 11:56:23 +01:00
compiler.d cmp: allow for storing type definitions in the compiler environment 2025-07-19 16:31:55 +02:00
cons.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
disassembler.d disassembler: add newly added opcodes to bytecodes disassembler 2025-03-27 22:45:34 +01:00
dpp.c port to C23 standard 2025-04-26 18:13:40 +02:00
ecl_constants.h long-float: remove conditionalization 2019-05-24 21:04:59 +00:00
ecl_features.h.in handle *features* entirely in the configure script 2025-07-19 16:33:22 +02:00
error.d stacks: merge stack overflow errors into a single handler 2025-05-26 09:21:50 +02:00
eval.d stacks: make stack frame state consistent based on its operators 2025-05-29 14:05:17 +02:00
ffi.d stacks: rename bindings and runtime stack pointers stored in frs 2025-05-26 08:43:59 +02:00
file.d stream: split file.d into different stream types 2025-07-26 16:59:42 +02:00
format.d speed up looking up and setting values of dynamic variables 2023-10-30 12:01:18 +01:00
hash.d bignum: replace numerous references to mpz with _ecl_big trampolines 2025-01-20 12:39:59 +01:00
interpreter.d bytevm: fix a possible segmentation fault in OP_PUSHKEYS 2025-08-27 10:46:58 +02:00
iso_latin_names.h Small compatibility fixes 2024-10-07 07:42:22 +02:00
list.d threading: add support for atomic operations 2018-10-15 19:55:39 +02:00
load.d cosmetic: replace @'t' with ECL_T in core 2024-12-11 12:38:30 +01:00
macros.d port to C23 standard 2025-04-26 18:13:40 +02:00
main.d Merge branch 'cross-compilation-core' into 'develop' 2025-07-21 08:04:44 +00:00
Makefile.in streams: add binary encoders and decoders to the mix 2025-08-11 10:01:40 +02:00
mapfun.d Remove FEprogram_error_noreturn and replace uses with FEprogram_error 2017-06-29 17:24:54 -05:00
memory.d core: add wrapper for manual memory managament 2025-03-31 20:44:46 +02:00
multival.d c-indent: g-n 2016-05-05 16:28:32 +02:00
newhash.h remove register storage class specifier 2021-07-17 12:13:05 +02:00
num_arith.d numbers: use fast dispatch in ecl_integer_divide (round) 2019-05-05 10:38:02 +02:00
num_co.d decode-float: fix the implementation 2022-10-22 19:22:51 +02:00
num_log.d bignum: replace numerous references to mpz with _ecl_big trampolines 2025-01-20 12:39:59 +01:00
num_pred.d ieee-fp: fix ext:float-{infinity/nan}-p 2019-08-14 20:51:40 +02:00
num_rand.d bignum: replace numerous references to mpz with _ecl_big trampolines 2025-01-20 12:39:59 +01:00
number.d ecl_to_int64_t: fix typo 2025-05-25 17:13:57 +02:00
package.d speed up looking up and setting values of dynamic variables 2023-10-30 12:01:18 +01:00
pathname.d logical pathnames: fix logical pathname translation for multiple * 2025-06-26 14:06:17 +02:00
predicate.d remove register storage class specifier 2021-07-17 12:13:05 +02:00
print.d Fix a braino in CL:FINISH-OUTPUT which called ecl_force_output 2025-08-13 14:19:56 +02:00
process.d threads: get rid of an annoying warning stemming from xopen 2025-05-13 14:18:10 +02:00
read.d streams: make ecl_read_byte return OBJNULL on EOF 2025-08-11 10:01:37 +02:00
reference.d implement faster function calls 2024-03-03 18:26:47 +01:00
sequence.d cosmetic: fix some compiler warnings 2020-04-29 20:35:37 +02:00
serialize.d serialize: fix a braino 2025-05-09 12:12:05 +02:00
sse2.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
stacks.d bytevm: fix a possible segmentation fault in OP_PUSHKEYS 2025-08-27 10:46:58 +02:00
stream.d streams: get rid of last_code slot in the structure 2025-08-11 10:01:40 +02:00
string.d ext:string-to-octets: avoid allocating unnecessarily large output array 2023-02-26 17:37:48 +01:00
structure.d clos: ensure correct class stamps 2022-02-04 21:31:53 +01:00
symbol.d copy-symbol: work around a bug in gcc 2025-06-22 10:45:53 +02:00
symbols_list.h streams: implement new interfaces for unreading and peeking bytes 2025-08-11 10:01:37 +02:00
tcp.d port to C23 standard 2025-04-26 18:13:40 +02:00
time.d ecl_musleep: get rid of unused alertable argument 2023-06-04 19:19:16 +02:00
typespec.d tree-wide: use new dpp @"" specifier for constant base strings where appropriate 2021-03-12 19:53:33 +01:00
unixfsys.d ensure-directories-exist: minor improvements 2025-03-01 17:52:26 +01:00
unixint.d cleanup: reorganize cl_env_struct 2025-05-26 09:28:10 +02:00
unixsys.d Fix access to environ on Darwin 2023-09-20 18:27:37 +00:00
vector_push.d cosmetic: vp 2016-05-06 08:43:40 +02:00