From 8fd19eefa46b313673d6ba2a0194a68674ef5ea9 Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Sat, 4 Feb 2017 11:56:14 +0200 Subject: geoip: Fix memory leak when using GeoIPRecord GeoIP_record_by_ipnum{,_v6} returns allocated pointer to GeoIPRecord with allocated city, region & postal_code which is not freed after the call. Fixed by xstrdup-ing required GeoIPRecord member (city/region) and after calling GeoIPRecord_delete to free the geoip record. Of course it is needed to also free obtained city/region in netsniff-ng, astraceroute & flowtop tools. Fixes #169 Signed-off-by: Vadim Kochan Signed-off-by: Tobias Klauser --- geoip.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'geoip.h') diff --git a/geoip.h b/geoip.h index 5d5c221..cdeef19 100644 --- a/geoip.h +++ b/geoip.h @@ -11,10 +11,10 @@ extern void init_geoip(int enforce); extern void update_geoip(void); extern int geoip_working(void); -extern const char *geoip4_city_name(struct sockaddr_in *sa); -extern const char *geoip6_city_name(struct sockaddr_in6 *sa); -extern const char *geoip4_region_name(struct sockaddr_in *sa); -extern const char *geoip6_region_name(struct sockaddr_in6 *sa); +extern char *geoip4_city_name(struct sockaddr_in *sa); +extern char *geoip6_city_name(struct sockaddr_in6 *sa); +extern char *geoip4_region_name(struct sockaddr_in *sa); +extern char *geoip6_region_name(struct sockaddr_in6 *sa); extern const char *geoip4_country_name(struct sockaddr_in *sa); extern const char *geoip6_country_name(struct sockaddr_in6 *sa); extern const char *geoip4_country_code3_name(struct sockaddr_in *sa); -- cgit v1.2.3-54-g00ecf