s is leaked in that case and in other early returns. My advise: after the last return in this function add that:
out_error:
     Stream_Free(s);
     return FALSE;

And on any error goto out_error