Du kannst bei glTexImage eine NULL Pointer übergeben. Ein kurzer Blick in die Doku hätte hier geholfen:
data may be a null pointer. In this case, texture memory is allocated to accommodate a texture of width width and height height. You can then download subtextures to initialize this texture memory. The image is undefined if the user tries to apply an uninitialized portion of the texture image to a primitive.