]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
- Added a check for invalid method in icpHandleIcpV2()
authorrousskov <>
Sun, 22 Mar 1998 14:16:59 +0000 (14:16 +0000)
committerrousskov <>
Sun, 22 Mar 1998 14:16:59 +0000 (14:16 +0000)
- Added METHOD_ENUM_END to mark the last valid method

src/enums.h
src/icp_v2.cc

index 87d0dbdb4268d719da09d94db6b97756949da91b..23d48ad69a28bd724ea1f0d0f934ce2325377875 100644 (file)
@@ -318,7 +318,8 @@ enum {
     METHOD_HEAD,               /* 100 */
     METHOD_CONNECT,            /* 101 */
     METHOD_TRACE,              /* 110 */
-    METHOD_PURGE               /* 111 */
+    METHOD_PURGE,              /* 111 */
+    METHOD_ENUM_END
 };
 typedef unsigned int method_t;
 
index 5b479f2ef4f8a1bea99a8b946dcd76fe91eb5425..9bb2e35f8958093448e6d3ecc357061690feb473 100644 (file)
@@ -157,6 +157,12 @@ icpHandleIcpV2(int fd, struct sockaddr_in from, char *buf, int len)
     header.pad = ntohl(header.pad);
 
     method = header.reqnum >> 24;
+    /* check if method is valid */
+    if (method >= METHOD_ENUM_END) {
+       debug(12, 0) ("icpHandleIcpV2: UNKNOWN METHOD: %d from %s\n",
+           method, inet_ntoa(from.sin_addr));
+       return;
+    }
     switch (header.opcode) {
     case ICP_QUERY:
        /* We have a valid packet */