diff -r 361f875fa818 -r d10d750052f0 xmlsecurityengine/xmlseccrypto/src/xmlsecc_bio.cpp --- a/xmlsecurityengine/xmlseccrypto/src/xmlsecc_bio.cpp Thu Apr 01 00:31:02 2010 +0300 +++ b/xmlsecurityengine/xmlseccrypto/src/xmlsecc_bio.cpp Tue Apr 27 18:31:15 2010 +0300 @@ -91,6 +91,7 @@ if(fileLen < 0) { xmlSecSetErrorFlag( KErrGeneral ); + fclose(fp); return(NULL); } fseek ( fp , 0L , SEEK_SET ); @@ -98,12 +99,14 @@ buf = (char *)malloc(sizeof(char)*(fileLen+1)); if(!buf) { xmlSecSetErrorFlag( KErrNoMemory ); + fclose(fp); return(NULL); } byteRead = fread(buf, sizeof(char), fileLen, fp); if(byteRead != fileLen) { free(buf); + fclose(fp); return(NULL); } @@ -114,6 +117,7 @@ { xmlSecSetErrorFlag( KErrNoMemory ); free(buf); + fclose(fp); return (NULL); } strcpy(tmpname, name); @@ -128,13 +132,14 @@ free(tmpname); } free(buf); + fclose(fp); return(NULL); } bio->mem = buf; bio->len = fileLen; bio->name = tmpname; - + fclose(fp); return bio; }