so if this call fails we leak a buffer?