int error;
vrps = malloc(sizeof(struct vrp));
- len = get_vrps_delta(common->start_serial, common->end_serial, vrps);
+ len = get_vrps_delta(common->start_serial, common->end_serial, &vrps);
if (len == 0)
- return 0;
+ goto end;
for (i = 0; i < len; i++) {
if (vrps[i].in_addr_len == INET_ADDRSTRLEN)
return error;
}
}
-
+end:
free(vrps);
return 0;
}
}
static void
-copy_vrps(struct vrp *dst, struct vrp *src, unsigned int len)
+copy_vrps(struct vrp **dst, struct vrp *src, unsigned int len)
{
struct vrp *tmp;
- tmp = realloc(dst, len * sizeof(struct vrp));
+ tmp = realloc(*dst, len * sizeof(struct vrp));
if (tmp == NULL) {
err(-ENOMEM, "Couldn't copy VRPs");
return;
}
- dst = tmp;
- memcpy(dst, src, len * sizeof(struct vrp));
+ *dst = tmp;
+ *dst = memcpy(*dst, src, len * sizeof(struct vrp));
}
/*
*/
unsigned int
get_vrps_delta(u_int32_t *start_serial, u_int32_t *end_serial,
- struct vrp *result)
+ struct vrp **result)
{
struct delta **delta1;
struct vrps summary;
int deltas_db_add_delta(struct delta *);
int deltas_db_status(u_int32_t *);
-unsigned int get_vrps_delta(u_int32_t *, u_int32_t *, struct vrp *);
+unsigned int get_vrps_delta(u_int32_t *, u_int32_t *, struct vrp **);
void vrp_destroy(struct vrp *);
void delta_destroy(struct delta **);