Custom Query (101 matches)
Results (37 - 39 of 101)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#93 | fixed | readServiceFile definition / linking error | Knut Landmark | |
Description |
The file service_internal.c contains the definition of the new function readServiceFile, which calls getServiceFromFile; getServiceFromFile is defined in service_conf.tab.c and declared extern in service_internal.h. Since WPS service implementations must be linked with service_internal.obj, I suggest moving the definition of readServiceFile to zoo_service_loader.c to avoid "unresolved external symbol" type linker errors. To complete this task, remove the declaration extern int getServiceFromFile(maps*,const char*,service**); from service_internal.h and put it in zoo_service_loader.c. Also put the declaration extern int readServiceFile(maps* conf, char* file,service** service,char *name); in zcfg2yaml.c |
|||
#92 | fixed | Unintended pointer incrementation in function outputResponse | Knut Landmark | |
Description |
The following clause in function outputResponse (zoo-kernel/service_internal.c, rev. 459, line 1998 ) causes unexpected behavior: if(lenv!=NULL){ tmp0=(char*)malloc((strlen(lenv->value)+strlen(_("Unable to run the Service. The message returned back by the Service was the following: "+1)))*sizeof(char)); sprintf(tmp0,_("Unable to run the Service. The message returned back by the Service was the following: %s"),lenv->value); } The const char* argument to strlen is incremented by +1, whereas the intention is to allocate an additional byte. Line 1999 should presumably be written tmp0=(char*)malloc((strlen(lenv->value)+strlen(_("Unable to run the Service. The message returned back by the Service was the following: "))+1)*sizeof(char)); |
|||
#89 | fixed | Memory buffer overflow | Knut Landmark | |
Description |
The following code in service_internal.c (from line 2006, revision 456) generates errors (on Windows 7 platform) due to insufficient memory allocation (malloc needs to allocate bytes for the forward slash characters in the URLs, lines 2007 and 2010). if(strncasecmp(tmp2->value,"http://",7)==0){ file_url=(char*)malloc((strlen(tmp2->value)+strlen(file_name))*sizeof(char)); sprintf(file_url,"%s/%s",tmp2->value,file_name); }else{ file_url=(char*)malloc((strlen(tmp3->value)+strlen(tmp2->value)+strlen(file_name))*sizeof(char)); sprintf(file_url,"%s/%s/%s",tmp3->value,tmp2->value,file_name); } Possibly, the if statement should also be modified to take into account the https protocol. |