Finalmente sono riuscito a risolvere il problema..
ho cercato meglio sulla struttura AUX_RGBImageRec e ho trovato cosa contiene al suo interno:
codice:
typedef struct _AUX_RGBImageRec {
    GLint sizeX, sizeY;
    unsigned char *data;
} AUX_RGBImageRec;
Per cui prima salvo sizeX e sizeY e poi tutto l'array data, quindi per rileggerlo leggo prima le dimensioni in modo da poter allocare l'array (sizeX * sizeY * 3) e poi tutte le sue locazioni. L'immagine finalmente è stata salvata grazie per l'aiuto