From ceb0445a2295d579ed8b0cc5f53666903e480d96 Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 3 Aug 2005 15:23:24 +0000 Subject: [PATCH] staving off memory leaks git-svn-id: svn://svn.open-ils.org/ILS/trunk@1599 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- OpenSRF/src/gateway/fieldmapper-c-xml-out.pl | 21 +++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/OpenSRF/src/gateway/fieldmapper-c-xml-out.pl b/OpenSRF/src/gateway/fieldmapper-c-xml-out.pl index 6724ff510e..09cfe9d6aa 100755 --- a/OpenSRF/src/gateway/fieldmapper-c-xml-out.pl +++ b/OpenSRF/src/gateway/fieldmapper-c-xml-out.pl @@ -41,6 +41,7 @@ print SOURCE < +#include #include "objson/object.h" #include "objson/json_parser.h" #include "opensrf/utils.h" @@ -83,16 +84,18 @@ char* _escape_xml (char* text) { int i; for (i = 0; i < len; i++) { if (text[i] == '&') - buffer_add(b,strdup("&")); + buffer_add(b,"&"); else if (text[i] == '<') - buffer_add(b,strdup("<")); + buffer_add(b,"<"); else if (text[i] == '>') - buffer_add(b,strdup(">")); + buffer_add(b,">"); else buffer_add_char(b,text[i]); } out = buffer_data(b); buffer_free(b); + fprintf(stderr," XXX Escaped string: %s\\n", out); + fflush(stderr); return out; } @@ -137,11 +140,13 @@ void _rest_xml_output(growing_buffer* buf, object* obj, char * fm_class, int fm_ } else if (obj->is_string) { if (notag) { - //buffer_add(buf,_escape_xml(obj->string_data)); - buffer_add(buf,obj->string_data); + char * t = _escape_xml(obj->string_data); + buffer_add(buf,t); + free(t); } else { - //buffer_fadd(buf,"<%s>%s",tag,_escape_xml(obj->string_data),tag); - buffer_fadd(buf,"<%s>%s",tag,obj->string_data,tag); + char * t = _escape_xml(obj->string_data); + buffer_fadd(buf,"<%s>%s",tag,t,tag); + free(t); } } else if(obj->is_number) { @@ -216,6 +221,8 @@ void _rest_xml_output(growing_buffer* buf, object* obj, char * fm_class, int fm_ if (obj->classname) buffer_fadd(buf,"",tag); + + free(tag); } char * _lookup_fm_field(char * class, int pos) { -- 2.43.2