This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 06e0ba0116 Check the inet_pton return value for IP reputations (#10267)
06e0ba0116 is described below

commit 06e0ba0116188a85a89b930cd92176d9386c3213
Author: Leif Hedstrom <zw...@apache.org>
AuthorDate: Mon Aug 28 16:12:19 2023 -0600

    Check the inet_pton return value for IP reputations (#10267)
    
    This fixes #10223.
---
 plugins/experimental/rate_limit/ip_reputation.cc | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/plugins/experimental/rate_limit/ip_reputation.cc 
b/plugins/experimental/rate_limit/ip_reputation.cc
index 9f6d9b59bd..764093e775 100644
--- a/plugins/experimental/rate_limit/ip_reputation.cc
+++ b/plugins/experimental/rate_limit/ip_reputation.cc
@@ -58,21 +58,24 @@ SieveLru::hasher(const std::string &ip, u_short family) // 
Mostly a convenience
   case AF_INET: {
     sockaddr_in sa4;
 
-    inet_pton(AF_INET, ip.c_str(), &(sa4.sin_addr));
-    sa4.sin_family = AF_INET;
-    return hasher(reinterpret_cast<const sockaddr *>(&sa4));
+    if (inet_pton(AF_INET, ip.c_str(), &(sa4.sin_addr))) {
+      sa4.sin_family = AF_INET;
+      return hasher(reinterpret_cast<const sockaddr *>(&sa4));
+    }
   } break;
   case AF_INET6: {
     sockaddr_in6 sa6;
 
-    inet_pton(AF_INET6, ip.c_str(), &(sa6.sin6_addr));
-    sa6.sin6_family = AF_INET6;
-    return hasher(reinterpret_cast<const sockaddr *>(&sa6));
+    if (inet_pton(AF_INET6, ip.c_str(), &(sa6.sin6_addr))) {
+      sa6.sin6_family = AF_INET6;
+      return hasher(reinterpret_cast<const sockaddr *>(&sa6));
+    }
   } break;
   default:
-    // Really shouldn't happen ...
-    return 0;
+    break;
   }
+
+  return 0; // Probably can't happen, but have to return something
 }
 // Constructor, setting up the pre-sized LRU buckets etc.
 SieveLru::SieveLru(uint32_t num_buckets, uint32_t size) : 
_lock(TSMutexCreate())

Reply via email to