Skip to content

Commit 877069e

Browse files
committed
FIX: Memory corruption in append/part with char! argument
resolves: Oldes/Rebol-issues#2683
1 parent 909fc9d commit 877069e

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

src/core/f-modify.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@
165165
SERIES_TAIL(src_ser) = Encode_UTF8_Char(STR_HEAD(src_ser), VAL_CHAR(src_val));
166166
TERM_SERIES(src_ser);
167167
if (SERIES_TAIL(src_ser) > 1) UTF8_SERIES(src_ser);
168+
dst_len = SERIES_TAIL(src_ser);
168169
}
169170
else if (IS_BLOCK(src_val)) {
170171
src_ser = Form_Tight_Block(src_val);

src/tests/units/series-test.r3

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,9 @@ Rebol [
751751
--test-- "APPEND string! char!"
752752
--assert "a" = append "" #"a"
753753
--assert "←" = append "" #"^(2190)" ; wide char
754+
;@@ https://github.com/Oldes/Rebol-issues/issues/2683
755+
--assert "a" = append/part "" #"a" 10
756+
--assert "←" = append/part "" #"^(2190)" 10
754757
===end-group===
755758

756759
===start-group=== "APPEND ref!"

0 commit comments

Comments
 (0)