Skip to content

Commit 9399ab3

Browse files
authored
Merge pull request #481 from pedro-w/issue-477
Check for NULLs when getting the 'next' message
2 parents 45a3705 + 3229936 commit 9399ab3

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

libs/iovm/source/IoMessage_opShuffle.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -383,9 +383,15 @@ void Levels_attach(Levels *self, IoMessage *msg, List *expressions) {
383383

384384
IoMessage *value = IoMessage_deepCopyOf_(DATA(msg)->next);
385385
IoMessage_rawSetNext_(value, NULL);
386-
387-
IoMessage *rest =
388-
IoMessage_deepCopyOf_(DATA(DATA(msg)->next)->next);
386+
// Step forward twice to the "next" part of the expression,
387+
// which may be NULL, and make a copy.
388+
IoMessage *rest = DATA(msg->next);
389+
if (rest) {
390+
rest = DATA(rest->next);
391+
}
392+
if (rest) {
393+
rest = IoMessage_deepCopyOf_(rest);
394+
}
389395
IoMessage_rawSetNext_(slotNameMessage, rest);
390396
IoMessage_addArg_(slotNameMessage, value);
391397

0 commit comments

Comments
 (0)