]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/iprep: fix loading of mixed ipv4/ipv6 lists 5864/head
authorVictor Julien <victor@inliniac.net>
Sat, 13 Feb 2021 15:54:56 +0000 (16:54 +0100)
committerJeff Lucovsky <jeff@lucovsky.org>
Mon, 15 Feb 2021 18:25:50 +0000 (13:25 -0500)
Improper reuse of the address data structure between loading
different lines in the iprep file would lead to the host using
a malformed address.

(cherry picked from commit 7b03e6837e5a7366f546e7a2b681d2921ded1ab1)

src/reputation.c

index eaba62119c51c5a29b71ffc6f98f0f09321c8297..95f56532d69fb6bb4be639f56989c294e507ed32 100644 (file)
@@ -435,9 +435,6 @@ static int SRepLoadFile(SRepCIDRTree *cidr_ctx, char *filename)
 int SRepLoadFileFromFD(SRepCIDRTree *cidr_ctx, FILE *fp)
 {
     char line[8192] = "";
-    Address a;
-    memset(&a, 0x00, sizeof(a));
-    a.family = AF_INET;
 
     while(fgets(line, (int)sizeof(line), fp) != NULL) {
         size_t len = strlen(line);
@@ -459,6 +456,10 @@ int SRepLoadFileFromFD(SRepCIDRTree *cidr_ctx, FILE *fp)
             line[len - 1] = '\0';
         }
 
+        Address a;
+        memset(&a, 0x00, sizeof(a));
+        a.family = AF_INET;
+
         uint8_t cat = 0, value = 0;
         int r = SRepSplitLine(cidr_ctx, line, &a, &cat, &value);
         if (r < 0) {