summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-02-02 20:53:05 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2017-02-02 20:53:05 +0100
commit65337bec22bb587facaf032feac39a8beb2a09cd (patch)
tree1c26fdc9178480fe24e1d1ccbc243693971de1be
parent7516e85813e5499579ef622dcc6da45a0b235ee6 (diff)
aan: check negative message size in header
-rw-r--r--sys/src/cmd/aan.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/sys/src/cmd/aan.c b/sys/src/cmd/aan.c
index 5f1477087..d61d8a190 100644
--- a/sys/src/cmd/aan.c
+++ b/sys/src/cmd/aan.c
@@ -310,14 +310,11 @@ fromnet(void*)
len, n, m, acked, lastacked);
if (n == 0) {
- if (m >= 0) {
- dmessage(1, "fromnet; network closed\n");
- break;
- }
- continue;
- }
-
- if (n > Bufsize) {
+ if (m < 0)
+ continue;
+ dmessage(1, "fromnet; network closed\n");
+ break;
+ } else if (n < 0 || n > Bufsize) {
dmessage(1, "fromnet; message too big %d > %d\n", n, Bufsize);
break;
}
@@ -337,6 +334,7 @@ fromnet(void*)
dmessage(1, "fromnet; skipping message %d, currently at %d\n", m, inmsg);
continue;
}
+ inmsg++;
// Process the acked list.
while(lastacked != acked) {
@@ -352,7 +350,6 @@ fromnet(void*)
sendp(empty, rb);
lastacked++;
}
- inmsg++;
showmsg(1, "fromnet", b);