xmlsecurityengine/xmlseccrypto/src/xmlsecc_bio.cpp
branchRCL_3
changeset 16 d10d750052f0
parent 1 29dae20d06bf
--- 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; 	
 
 }