Re: [PATCH] useless CHECK_NULP in dblib.c:tdsdbopen()

"Craig A. Berry" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
On Mar 20, 2009, at 7:27 PM, James K. Lowden wrote:

> Craig A. Berry wrote:
>> The CHECK_NULP statement removed by the attached patch is not  
>> actually
>> checking anything except whether random data from the stack is non-
>> zero.
>
> One of us is confused, Craig.  How about the attached instead?
>
> The macro:
>
> #define CHECK_NULP(x, func, param_num, ret)	if (!(x))  
> { dbperror(dbproc,
> #SYBENULP, 0, func, (int) param_num); return ret; }
>
> The function call:
>
> tdsdbopen(LOGINREC * login, const char *server, int msdblib)
>
> The check:
>
> -       CHECK_NULP(server, "dbopen", 2, NULL);
>
> expands to:
>
>        if (!(server)) { dbperror(dbproc, 20176, 0, "dbopen", (int) 2);
> return (void *)0; };
>
> The check isn't against "random data from the stack"; it's against the
> server argument.

I really wasn't clear (and hadn't looked at the macro long enough to  
understand it).  It's dbproc, not server, that has been "fetched but  
not initialized".  I'll try to actually think before replying further.

>

________________________________________
Craig A. Berry
mailto:[email protected]

"... getting out of a sonnet is much more
  difficult than getting in."
                  Brad Leithauser
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.