xmlsecurityengine/xmlseccrypto/src/xmlsecc_bio.cpp
branchRCL_3
changeset 16 d10d750052f0
parent 1 29dae20d06bf
equal deleted inserted replaced
14:361f875fa818 16:d10d750052f0
    89 	fseek(fp, 0, SEEK_END);
    89 	fseek(fp, 0, SEEK_END);
    90 	fileLen = ftell(fp);
    90 	fileLen = ftell(fp);
    91 	if(fileLen < 0)
    91 	if(fileLen < 0)
    92 		{
    92 		{
    93 			xmlSecSetErrorFlag( KErrGeneral );
    93 			xmlSecSetErrorFlag( KErrGeneral );
       
    94 			fclose(fp);
    94 			return(NULL);
    95 			return(NULL);
    95 		}
    96 		}
    96 	fseek ( fp , 0L , SEEK_SET );
    97 	fseek ( fp , 0L , SEEK_SET );
    97 	
    98 	
    98 	buf = (char *)malloc(sizeof(char)*(fileLen+1));
    99 	buf = (char *)malloc(sizeof(char)*(fileLen+1));
    99     if(!buf) {	   
   100     if(!buf) {	   
   100 		xmlSecSetErrorFlag( KErrNoMemory );
   101 		xmlSecSetErrorFlag( KErrNoMemory );
       
   102 		fclose(fp);
   101 	    return(NULL);
   103 	    return(NULL);
   102 	}    
   104 	}    
   103 				
   105 				
   104 	byteRead = fread(buf, sizeof(char), fileLen, fp);
   106 	byteRead = fread(buf, sizeof(char), fileLen, fp);
   105     if(byteRead != fileLen) {
   107     if(byteRead != fileLen) {
   106 	    free(buf);
   108 	    free(buf);
       
   109 	    fclose(fp);
   107 	    return(NULL);
   110 	    return(NULL);
   108 	}   
   111 	}   
   109 	
   112 	
   110 	if (name)
   113 	if (name)
   111 	{
   114 	{
   112 		tmpname = (char *)malloc(sizeof(char)*(strlen(name)+1));
   115 		tmpname = (char *)malloc(sizeof(char)*(strlen(name)+1));
   113 		if (!tmpname)
   116 		if (!tmpname)
   114 		{
   117 		{
   115 		    xmlSecSetErrorFlag( KErrNoMemory );
   118 		    xmlSecSetErrorFlag( KErrNoMemory );
   116 			free(buf);
   119 			free(buf);
       
   120 			fclose(fp);
   117 			return (NULL);
   121 			return (NULL);
   118 		}		
   122 		}		
   119 		strcpy(tmpname, name);
   123 		strcpy(tmpname, name);
   120 	}
   124 	}
   121 
   125 
   126 		if (tmpname)
   130 		if (tmpname)
   127 		    {
   131 		    {
   128 		    free(tmpname);
   132 		    free(tmpname);
   129 		    }
   133 		    }
   130 	    free(buf);
   134 	    free(buf);
       
   135 	    fclose(fp);
   131 	    return(NULL);
   136 	    return(NULL);
   132 	}
   137 	}
   133 	
   138 	
   134 	bio->mem = buf;
   139 	bio->mem = buf;
   135 	bio->len = fileLen;
   140 	bio->len = fileLen;
   136 	bio->name = tmpname;
   141 	bio->name = tmpname;
   137 
   142 	fclose(fp);
   138 	return bio; 	
   143 	return bio; 	
   139 
   144 
   140 }
   145 }
   141 
   146 
   142 void BIO_free(BIO *bio)
   147 void BIO_free(BIO *bio)