What wrong with my texture loading code?

What wrong with my texture loading code? Sometimes when i load with mipmaping disabled textures doesn’t load (shapes binded with that texture apear white)

AUX_RGBImageRec *LoadBMP(char *Filename)
{
if (!Filename) return NULL;

    FILE *File = NULL;

    File = fopen(Filename, "r");

    if (File)
    {
      fclose(File);
      return auxDIBImageLoad(Filename);
    }

    return NULL;

}

void Load(char *file2, bool mipmap)
{
AUX_RGBImageRec *TexImage ;

memset(&TexImage, 0, sizeof (void *));	

char file[256];

strcpy(file, "Textures\\");
strcat(file, file2);

TexImage = LoadBMP(file);

if (!TexImage)
{
	Log("ERROR: Cannot load texture: %s", file);

	if (TexImage)
    {
      if (TexImage->data) 
		  free(TexImage->data);
    free (TexImage);
    }

    return;
}

glGenTextures(1, &Tex);
glBindTexture(GL_TEXTURE_2D, Tex);   

if (!mipmap)
{
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

glTexImage2D(GL_TEXTURE_2D, 0, 3, TexImage->sizeX, TexImage->sizeY, 0,GL_RGB, GL_UNSIGNED_BYTE, TexImage->data);
}

//jeigu reikia mipmapo	
if(mipmap)
{
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TexImage->sizeX, TexImage->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TexImage->data);
}

if (TexImage)
    {
      if (TexImage->data) 
		  free(TexImage->data);
    free (TexImage);
    }

Log("Texture %s loaded", file2);

}

remember that texture dimensions must be powers of 2

Yes, i know that…