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