]> git.ipfire.org Git - thirdparty/FORT-validator.git/commitdiff
Fix segfault when destroying vrps
authorpcarana <pc.moreno2099@gmail.com>
Tue, 19 Feb 2019 14:18:37 +0000 (08:18 -0600)
committerpcarana <pc.moreno2099@gmail.com>
Tue, 19 Feb 2019 14:18:37 +0000 (08:18 -0600)
src/csv.c
src/vrps.c
src/vrps.h

index b9275f8839568cef5dc342f9b8bab39c66f784da..77faa3b12cfb98b1e8ee40ff5896af5b2fe2d857 100644 (file)
--- a/src/csv.c
+++ b/src/csv.c
@@ -165,7 +165,7 @@ add_vrp(char *line, struct delta *delta)
 
        error = delta_add_vrp(delta, vrp);
        if (error) {
-               vrp_destroy(vrp);
+               vrp_destroy(&vrp);
                goto error;
        }
 
index 41f1c78a68dfa34844340eb23cb0200af766ed28..e181db58abedc3711e72e435fdd55d8f160327d2 100644 (file)
@@ -14,7 +14,7 @@ struct vrp {
        u_int8_t        max_prefix_length;
 };
 
-ARRAY_LIST(delta, struct vrp)
+ARRAY_LIST(delta, struct vrp *)
 ARRAY_LIST(deltasdb, struct delta)
 
 struct deltasdb db;
@@ -106,13 +106,13 @@ deltas_db_add_delta(struct delta *delta)
 int
 delta_add_vrp(struct delta *delta, struct vrp *vrp)
 {
-       return delta_add(delta, vrp);
+       return delta_add(delta, &vrp);
 }
 
 void
-vrp_destroy(struct vrp *vrp)
+vrp_destroy(struct vrp **vrp)
 {
-       free(vrp);
+       free(*vrp);
 }
 
 void
index 41aabad45d675dc42092ed28924422363b8fd328..70c5abf9a7459879ae6eb09b23c968ed95b59b1f 100644 (file)
@@ -15,7 +15,7 @@ struct vrp *create_vrp6(u_int32_t, struct in6_addr, u_int8_t, u_int8_t);
 int delta_add_vrp(struct delta *, struct vrp *);
 int deltas_db_add_delta(struct delta *);
 
-void vrp_destroy(struct vrp *);
+void vrp_destroy(struct vrp **);
 void delta_destroy(struct delta *);
 void deltas_db_destroy();