From 7619ddb0a299ecde33f5dbaf89bcf6c875507d7f Mon Sep 17 00:00:00 2001 From: nbd Date: Fri, 2 Jan 2009 23:51:57 +0000 Subject: ead: message handling fixes git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13828 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/ead/src/ead-client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'package/ead/src/ead-client.c') diff --git a/package/ead/src/ead-client.c b/package/ead/src/ead-client.c index 111dc8ac6..14e04c40b 100644 --- a/package/ead/src/ead-client.c +++ b/package/ead/src/ead-client.c @@ -143,7 +143,10 @@ static bool handle_pong(void) { struct ead_msg_pong *pong = EAD_DATA(msg, pong); - int len = msg->len - sizeof(struct ead_msg_pong); + int len = ntohl(msg->len) - sizeof(struct ead_msg_pong); + + if (len <= 0) + return false; pong->name[len] = 0; auth_type = ntohs(pong->auth_type); -- cgit v1.2.3