diff options
author | zilio nicolas <nicolas.zilio@kit.edu> | 2015-08-27 16:42:27 +0200 |
---|---|---|
committer | zilio nicolas <nicolas.zilio@kit.edu> | 2015-08-27 16:42:27 +0200 |
commit | a1e8741ac0d77ab721a413a283127352d80fb944 (patch) | |
tree | a1a22868837946846de5338f2687d6fa33fa9600 | |
parent | 04b33df0407e03175a56096cb7ff79a56bea9e88 (diff) | |
download | pcitool-a1e8741ac0d77ab721a413a283127352d80fb944.tar.gz pcitool-a1e8741ac0d77ab721a413a283127352d80fb944.tar.bz2 pcitool-a1e8741ac0d77ab721a413a283127352d80fb944.tar.xz pcitool-a1e8741ac0d77ab721a413a283127352d80fb944.zip |
some adressing regarding possible memory leaks
-rw-r--r-- | pcilib/xml.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/pcilib/xml.c b/pcilib/xml.c index 482ab25..ad76dcc 100644 --- a/pcilib/xml.c +++ b/pcilib/xml.c @@ -154,6 +154,15 @@ while((fgets(line,sizeof(line),in))!=NULL) { docs=(xmlDocPtr*) realloc(docs,i*sizeof(xmlDocPtr)); docs[i]=NULL; + free(path); + free(command); + free(command_xsd); + free(line); + free(line_xsd); + free(in); + free(in2); + fclose(in); + fclose(in2); } /** pcilib_xml_create_register. @@ -481,6 +490,7 @@ void pcilib_xml_arrange_registers(pcilib_register_description_t *registers,int s pcilib_register_description_t* temp; temp=malloc(size*sizeof(pcilib_register_description_t)); topdownsplitmerge(registers,0,size,temp); + free(temp); } /** pcilib_xml_getnumberregisters @@ -724,13 +734,13 @@ viewnumber=0; xmlXPathObjectPtr temp,temp2; char* path; - path=malloc((strlen((char*)name)+51)*sizeof(char)); + path=malloc(sizeof(char*)); sprintf(path, VIEW_STANDARD_REGISTER_PLUS,(char*)name); temp=pcilib_xml_getsetproperty(context,(xmlChar*)path); if(temp!=NULL) nodesetviewregister= temp->nodesetval; char* path2; - path2=malloc((strlen((char*)name)+strlen(VIEW_BITS_REGISTER_PLUS))*sizeof(char)); + path2=malloc(sizeof(char*)); sprintf(path2, VIEW_BITS_REGISTER_PLUS,(char*)name); temp2= pcilib_xml_getsetproperty(context,(xmlChar*)path2); if(temp2!=NULL) nodesetviewregisterbit= temp2->nodesetval; @@ -836,6 +846,9 @@ viewnumber=0; } viewnumber++; } + + free(path); + free(path2); } /* pcilib_xml_initialize_viewsenum @@ -873,13 +886,13 @@ void pcilib_xml_initialize_viewsenum(xmlDocPtr doc, pcilib_view_enum_ptr_t* myvi registernumber=0; char* path; - path=malloc((strlen((char*)name)+51)*sizeof(char)); + path=malloc(sizeof(char*)); sprintf(path, VIEW_STANDARD_REGISTER_PLUS,(char*)name); temp=pcilib_xml_getsetproperty(context,(xmlChar*)path); if(temp!=NULL) viewsetregister3= temp->nodesetval; char* path2; - path2=malloc((strlen((char*)name)+strlen(VIEW_BITS_REGISTER_PLUS))*sizeof(char)); + path2=malloc(sizeof(char*)); sprintf(path2, VIEW_BITS_REGISTER_PLUS,(char*)name); temp2= pcilib_xml_getsetproperty(context,(xmlChar*)path2); if(temp2!=NULL) viewsetregister4= temp2->nodesetval; @@ -973,6 +986,9 @@ void pcilib_xml_initialize_viewsenum(xmlDocPtr doc, pcilib_view_enum_ptr_t* myvi viewnumber++; } + + free(path); + free(path2); } #endif @@ -996,7 +1012,7 @@ void pclib_xml_initialize_units(xmlDocPtr doc, pcilib_units_ptr_t* unitsptr){ for(i=0; i< nodesetbaseunit->NodeNr; i++){ unitsptr->list_unit[i].name=nodesetbaseunit->nodeTab[i]->properties->children->content; - path=malloc((strlen(unitsptr->list_unit[i].name)+35)*sizeof(char)); + path=malloc(sizeof(char*)); sprintf(path, TRANSFORM_UNIT_PATH, unitsptr->list_unit[i].name); temp=pcilib_xml_getsetproperty(context, path); if(temp!=NULL){ @@ -1008,6 +1024,6 @@ void pclib_xml_initialize_units(xmlDocPtr doc, pcilib_units_ptr_t* unitsptr){ } } } - + free(path); } #endif |