aboutsummaryrefslogtreecommitdiffstats
path: root/lib/erl_interface/src/decode/decode_pid.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2013-01-30 19:15:30 +0100
committerSverker Eriksson <[email protected]>2013-01-30 19:15:30 +0100
commitf822540687d16eecfcd2d74b55091593c674d478 (patch)
tree5ee5285e3b367dcd398468295044933d31dbd261 /lib/erl_interface/src/decode/decode_pid.c
parent68b804f34d4ec420d86953e3f519179a40fbee8f (diff)
downloadotp-f822540687d16eecfcd2d74b55091593c674d478.tar.gz
otp-f822540687d16eecfcd2d74b55091593c674d478.tar.bz2
otp-f822540687d16eecfcd2d74b55091593c674d478.zip
erl_interface: Fix ei_skip_term
Diffstat (limited to 'lib/erl_interface/src/decode/decode_pid.c')
-rw-r--r--lib/erl_interface/src/decode/decode_pid.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/erl_interface/src/decode/decode_pid.c b/lib/erl_interface/src/decode/decode_pid.c
index 67ce7e05f9..d429fb2fd8 100644
--- a/lib/erl_interface/src/decode/decode_pid.c
+++ b/lib/erl_interface/src/decode/decode_pid.c
@@ -29,16 +29,16 @@ int ei_decode_pid(const char *buf, int *index, erlang_pid *p)
if (get8(s) != ERL_PID_EXT) return -1;
- /* first the nodename */
- if (get_atom(&s, p->node, &p->node_org_enc) < 0) return -1;
-
- /* now the numbers: num (4), serial (4), creation (1) */
if (p) {
+ if (get_atom(&s, p->node, &p->node_org_enc) < 0) return -1;
p->num = get32be(s) & 0x7fff; /* 15 bits */
p->serial = get32be(s) & 0x1fff; /* 13 bits */
p->creation = get8(s) & 0x03; /* 2 bits */
}
- else s+= 9;
+ else {
+ if (get_atom(&s, NULL, NULL) < 0) return -1;
+ s+= 9;
+ }
*index += s-s0;