From: tsteven4 Date: Thu, 1 Aug 2013 03:59:09 +0000 (+0000) Subject: fix memory leak in garmin_fit. X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~12^2~11^2~464 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f8480d1f6fd96be9ed91ecddad9e174b9c284cc4;p=gpsbabel.git fix memory leak in garmin_fit. Also fix an error in the mask for local messsage type. --- diff --git a/gpsbabel/garmin_fit.cc b/gpsbabel/garmin_fit.cc index 1ee872f0a..504868169 100644 --- a/gpsbabel/garmin_fit.cc +++ b/gpsbabel/garmin_fit.cc @@ -68,6 +68,15 @@ fit_rd_init(const char* fname) static void fit_rd_deinit(void) { + int local_id; + + for (local_id=0; local_id<16; local_id++) { + fit_message_def* def = &fit_data.message_def[local_id]; + if (def->fields) { + xfree(def->fields); + } + } + gbfclose(fin); } @@ -184,12 +193,12 @@ fit_getuint32(void) static void fit_parse_definition_message(uint8_t header) { - int local_id = header & 0x1f; + int local_id = header & 0x0f; fit_message_def* def = &fit_data.message_def[local_id]; int i; if (def->fields) { - free(def->fields); + xfree(def->fields); } // first byte is reserved. It's usually 0 and we don't know what it is,