Skip to content

Commit dd3632d

Browse files
committed
FIX: Memory corruption when used append/part to binary with char! argument
related to: Oldes/Rebol-issues#2683
1 parent 03db997 commit dd3632d

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/core/f-modify.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@
143143
}
144144
else if (IS_CHAR(src_val)) {
145145
src_ser = BUF_SCAN;
146-
src_ser->tail = Encode_UTF8_Char(BIN_HEAD(src_ser), VAL_CHAR(src_val));
146+
src_ser->tail = dst_len = Encode_UTF8_Char(BIN_HEAD(src_ser), VAL_CHAR(src_val));
147147
}
148148
else if (ANY_STR(src_val)) {
149149
if (action != A_CHANGE && GET_FLAG(flags, AN_PART)) {

src/tests/units/series-test.r3

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,9 @@ Rebol [
790790
--test-- "APPEND binary! char!"
791791
--assert #{0001} = append #{00} #"^(01)"
792792
--assert #{00E28690} = append #{00} #"^(2190)"
793+
;@@ https://github.com/Oldes/Rebol-issues/issues/2683
794+
--assert #{0001} = append/part #{00} #"^(01)" 10
795+
--assert #{00E28690} = append/part #{00} #"^(2190)" 10
793796
--test-- "APPEND/part binary!"
794797
--assert #{01} = append/part #{} #{0102} 1
795798
--assert #{01} = append/part #{} "^(01)^(02)" 1

0 commit comments

Comments
 (0)