Author: dcreager
Date: Thu Jun 7 17:40:30 2012
New Revision: 1347734
URL: http://svn.apache.org/viewvc?rev=1347734&view=rev
Log:
AVRO-1102. C: Fix memory leak in avro_string
We create a copy of the string, but weren't freeing that copy if the datum
instance couldn't be created. Now we do.
Contributed by Maxim Pugachev.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/c/src/datum.c
Modified: avro/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1347734&r1=1347733&r2=1347734&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Thu Jun 7 17:40:30 2012
@@ -126,6 +126,9 @@ Avro 1.7.0 (28 May 2012)
AVRO-1087. C: avro_file_writer_open() and appending Avro values
works correctly. (Pugachev Maxim via dcreager)
+ AVRO-1102. C: Remove memory leak in avro_string(). (Maxim Pugachev via
+ dcreager)
+
Avro 1.6.3 (5 March 2012)
AVRO-1077. Missing 'inline' for union set function. (thiru)
Modified: avro/trunk/lang/c/src/datum.c
URL:
http://svn.apache.org/viewvc/avro/trunk/lang/c/src/datum.c?rev=1347734&r1=1347733&r2=1347734&view=diff
==============================================================================
--- avro/trunk/lang/c/src/datum.c (original)
+++ avro/trunk/lang/c/src/datum.c Thu Jun 7 17:40:30 2012
@@ -70,7 +70,12 @@ avro_datum_t avro_string(const char *str
avro_set_error("Cannot copy string content");
return NULL;
}
- return avro_string_private(p, 0, avro_str_free_wrapper);
+ avro_datum_t s_datum = avro_string_private(p, 0, avro_str_free_wrapper);
+ if (!s_datum) {
+ avro_str_free(p);
+ }
+
+ return s_datum;
}
avro_datum_t avro_givestring(const char *str,