diff options
Diffstat (limited to 'lib/erl_interface/src/decode/decode_ref.c')
-rw-r--r-- | lib/erl_interface/src/decode/decode_ref.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/erl_interface/src/decode/decode_ref.c b/lib/erl_interface/src/decode/decode_ref.c index c9b38c1c3b..c10a02094e 100644 --- a/lib/erl_interface/src/decode/decode_ref.c +++ b/lib/erl_interface/src/decode/decode_ref.c @@ -54,6 +54,9 @@ int ei_decode_ref(const char *buf, int *index, erlang_ref *p) /* first the integer count */ count = get16be(s); + if (count > sizeof(p->n)/sizeof(p->n[0])) + return -1; /* Not enough space in struct... */ + if (p) { p->len = count; if (get_atom(&s, p->node, NULL) < 0) return -1; |