Skip to Content.
Sympa Menu

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

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] [PATCH] useless CHECK_NULP in dblib.c:tdsdbopen()
  • Date: Sat, 21 Mar 2009 13:34:08 -0400

Craig A. Berry wrote:
> >> 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.
>
> Your patch looks good to me, compiles fine here, and I'm now testing
> with it. You were right that I was confused in saying that the
> uninitialized data is what we were checking (server), when in fact
> it's what we were using to report the error (dbproc). This was rather
> dangerous because dbperror dereferences dbproc and could either get
> garbage or segfault when given a bad pointer. Had we initialized
> dbproc to NULL, that would've been ok as dbperror handles that case.

Ah! I didn't even notice that. Friggin macros!

Keep 'em coming, Craig.

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page