ead: message handling fixes
[openwrt/svn-archive/archive.git] / package / ead / src / ead-client.c
index 111dc8ac635aa8f2db9aed787dbfab552e233bb1..14e04c40ba94e36af134be57b715fd1e1438f123 100644 (file)
@@ -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);