Build failure with VS 2012 due to uninitialized pointers - Mailing list pgsql-odbc

From Craig Ringer
Subject Build failure with VS 2012 due to uninitialized pointers
Date
Msg-id 53995C6E.90509@2ndquadrant.com
Whole thread Raw
Responses Re: Build failure with VS 2012 due to uninitialized pointers  ("Inoue, Hiroshi" <inoue@tpf.co.jp>)
List pgsql-odbc
Hi folks

VS 2012 reports possibly uninitialized pointer access:




c:\users\administrator\desktop\psqlodbc\connection.c(2073): error C4703:
potentially uninitialized local pointer variable 'sock' used

which is

    if (0 != (sockerr = SOCK_get_errcode(sock)))
    {

in original_CC_connect(...).



c:\users\administrator\desktop\psqlodbc\dlg_wingui.c(177): error C4703:
potentially uninitialized local pointer variable 'comval' used

which is

    CheckDlgButton(hdlg, DRV_COMMLOG, comval->commlog);




By default it treats these as fatal errors, so the codebase won't build
on VS 2012. BuildAll.ps1 doesn't seem to provide a simple way to pass
extra CFLAGS into the build (to pass /sdl- per
http://msdn.microsoft.com/en-us/library/jj161081.aspx), and it isn't
really desirable to just turn the warning off anyway.


I've taken a look at what's going on. In the case of the first one the
function is not small and its flow isn't simple. I thought I'd mention
the issue here first, in case somebody was able to immediately see
what's missing. While I could just:


-    SocketClass *sock;
+    SocketClass *sock = NULL;

I'm pretty sure that's just papering over whatever the real problem is.


The second, the comval error, looks to be a missing default: clause in
the case. If this were backend code I'd just toss in an

    elog(FATAL,"Unreachable code reached");

but that's not going to be much good in psqlODBC.



--
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


pgsql-odbc by date:

Previous
From: "Inoue, Hiroshi"
Date:
Subject: Re: XA registry entries are missing from 64-bit install
Next
From: Craig Ringer
Date:
Subject: Re: XA registry entries are missing from 64-bit install