Ignore:
Timestamp:
Jun 27, 2014, 1:14:39 AM (10 years ago)
Author:
djay
Message:

Remove memory leaks from ZOO-Kernel. Fix issue #99.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-project/zoo-kernel/zoo_service_loader.c

    r488 r490  
    221221      sprintf(prefix,"%s.",dp->d_name);
    222222     
    223       map* tmpMap=getMapFromMaps(m,"lenv",tmp1);
     223      //map* tmpMap=getMapFromMaps(m,"lenv",tmp1);
    224224     
    225225      int res;
     
    467467          fprintf(stderr,"Function %s error %s\n",r_inputs->value,errstr);
    468468#endif
     469          *eres=-1;
    469470          return;
    470471        }
     
    661662#endif
    662663
    663 int runRequest(map* request_inputs)
     664int runRequest(map** inputs)
    664665{
    665 
     666 
    666667#ifndef USE_GDB
    667668  (void) signal(SIGSEGV,sig_handler);
     
    674675
    675676  map* r_inputs=NULL;
     677  map* request_inputs=*inputs;
    676678  maps* m=NULL;
    677 
    678679  char* REQUEST=NULL;
    679680  /**
     
    788789  if(request_inputs==NULL || r_inputs==NULL){
    789790    errorException(m, _("Parameter <request> was not specified"),"MissingParameterValue","request");
    790     freeMap(&request_inputs);
    791     free(request_inputs);
     791    if(count(request_inputs)==1){
     792      freeMap(&request_inputs);
     793      free(request_inputs);
     794    }
    792795    freeMaps(&m);
    793796    free(m);
     
    871874
    872875  if(strncasecmp(REQUEST,"GetCapabilities",15)==0){
    873     struct dirent *dp;
    874876#ifdef DEBUG
    875877    dumpMap(r_inputs);
     
    16221624#endif
    16231625                  if(hai==0){
    1624                     key=(char*)malloc((1+strlen((char*)val))*sizeof(char));
    1625                     snprintf(key,1+strlen((char*)val),"%s",(char*)val);
     1626                    key=zStrdup((char*)val);
    16261627                  }else{
    1627                     has=(char*)malloc((3+strlen((char*)val)+strlen(key))*sizeof(char));
     1628                    has=(char*)malloc((4+xmlStrlen(val)+strlen(key))*sizeof(char));
    16281629                    if(has == NULL){
    16291630                      return errorException(m, _("Unable to allocate memory."), "InternalError",NULL);
    16301631                    }
    1631                     snprintf(has,(3+strlen((char*)val)+strlen(key)),"%s: %s",key,(char*)val);
     1632                    snprintf(has,(3+xmlStrlen(val)+strlen(key)),"%s: %s",key,(char*)val);
     1633                    free(key);
    16321634#ifdef POST_DEBUG
    16331635                    fprintf(stderr,"%s\n",has);
    16341636#endif
    16351637                  }
     1638                  xmlFree(val);
    16361639                }
    16371640                hInternetP.header=curl_slist_append(hInternetP.header, has);
     
    16471650                  fprintf(stderr,"Body part found !!!\n",(char*)cur3->content);
    16481651#endif
    1649                   char *tmp=new char[cgiContentLength];
     1652                  char *tmp=(char*)malloc(cgiContentLength+1*sizeof(char));
    16501653                  memset(tmp,0,cgiContentLength);
    16511654                  xmlNodePtr cur4=cur3->children;
     
    16641667                    if(btmps!=NULL)
    16651668                      sprintf(tmp,"%s",(char*)btmps);
     1669                    xmlFree(btmps);
     1670                    cur4=cur4->next;
    16661671                    xmlFreeDoc(bdoc);
    1667                     cur4=cur4->next;
    16681672                  }
    16691673                  map *btmp=getMap(tmpmaps->content,"href");
     
    16861690                      curl_slist_free_all(hInternetP.header);
    16871691                    addToMap(tmpmaps->content,"value",tmpContent);
     1692                    free(tmpContent);
    16881693#ifdef POST_DEBUG
    16891694                    fprintf(stderr,"DL CONTENT : (%s)\n",tmpContent);
    1690 #endif
     1695#endif             
    16911696                  }
     1697                  free(tmp);
    16921698                }
    16931699                else
     
    18421848                  sprintf(size,"%d",buffersize);
    18431849                  addToMap(tmpmaps->content,"size",size);
     1850                  xmlFreeDoc(doc1);
    18441851                }
    18451852                addToMap(tmpmaps->content,"value",(char*)mv);
     
    21372144    }
    21382145    xmlXPathFreeObject(tmpsptr);
     2146    xmlFreeDoc(doc);
    21392147    xmlCleanupParser();
    21402148  }
     
    21682176        char tmps[1024];
    21692177        map* tmpe=createMap("code","FileSizeExceeded");
    2170         snprintf(tmps,1024,_("The <%s> parameter has a limited size (%sMB) defined in ZOO ServicesProvider configuration file but the reference you provided exceed this limitation (%dMB), please correct your query or the ZOO Configuration file."),ptr->name,tmp1->value,i);
     2178        snprintf(tmps,1024,_("The <%s> parameter has a limited size (%sMB) defined in ZOO ServicesProvider configuration file but the reference you provided exceed this limitation (%fMB), please correct your query or the ZOO Configuration file."),ptr->name,tmp1->value,i);
    21712179        addToMap(tmpe,"locator",ptr->name);
    21722180        addToMap(tmpe,"text",tmps);
     
    22302238        cgiFilePtr file;
    22312239        int targetFile;
    2232         mode_t mode;
    22332240        char storageNameOnServer[2048];
    22342241        char fileNameOnServer[64];
     
    22592266          fprintf(stderr,"fileNameOnServer: %s\n",fileNameOnServer);
    22602267#endif
    2261           mode=S_IRWXU|S_IRGRP|S_IROTH;
    22622268          targetFile = open (storageNameOnServer,O_RDWR|O_CREAT|O_TRUNC,S_IRWXU|S_IRGRP|S_IROTH);
    22632269          if(targetFile<0){
     
    24082414    char *tcook=zStrdup(cgiCookie);
    24092415    char *tmp=NULL;
    2410     int hasVal=-1;
    24112416    map* testing=getMapFromMaps(m,"main","cookiePrefix");
    24122417    if(testing==NULL){
     
    24152420      tmp=(char*)malloc((strlen(testing->value)+2)*sizeof(char));
    24162421      sprintf(tmp,"%s=",testing->value);
    2417       hasVal=1;
    24182422    }
    24192423    if(strstr(cgiCookie,";")!=NULL){
     
    25852589  (void) signal(SIGABRT,donothing);
    25862590#endif
    2587 
    25882591  if(((int)getpid())!=cpid || cgiSid!=NULL){
    25892592    fclose(stdout);
     
    26082611    unlink(fbkp1);
    26092612    free(fbkp1);
     2613    free(tmps1);
    26102614  }
    26112615
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png