Artifact [9459d6bdbf]
Not logged in

Artifact 9459d6bdbfb72469a74fd4db8aa1f5258c006782:

Ticket change [9459d6bdbf] - New ticket [3caef588e3] dereferencing type-punned pointer in sqlite3.c. by rwilson 2010-01-01 17:00:57.
D 2010-01-01T17:00:57
J comment i\sknow\sthis\sis\san\ssqlite\sissue,\sbut\si\scan't\screate\stickets\son\ssqlite.org,\sneither\sis\sthe\samaglamation\sin\sthe\ssqlite\ssource\stree.\s\swhen\si\sbuild\sfossil\si\sget\sthe\sfollowing\swarning:\r\n\r\n<pre>\r\ngcc\s-Os\s-Wall\s-DFOSSIL_I18N=0\s-L/mingw/lib\s-I/mingw/include\s\s-I.\s-I./src\s-DSQLITE_OMIT_LOAD_EXTENSION=1\s-DSQLITE_THREADSAFE=0\s-DSQLITE_DEFAULT_FILE_FORMAT=4\s-Dlocaltime=fossil_localtime\s-c\s./src/sqlite3.c\s-o\ssqlite3.o\r\n./src/sqlite3.c:\sIn\sfunction\s`getLastErrorMsg':\r\n./src/sqlite3.c:28450:\swarning:\sdereferencing\stype-punned\spointer\swill\sbreak\sstrict-aliasing\srules\r\n</pre>\r\n\r\nthe\swarning\sis\sinnocuous,\sbut\sthis\spatch\sresolves\sit.\s\si'm\spretty\ssure\sthe\scode\sis\scorrect,\sbut\si\scould\suse\sa\scode\sreview.\s\shopefully,\si\sdidn't\smake\sa\snoob\smistake.\r\n\r\n<pre>\r\n---\ssqlite3.c\r\n+++\ssqlite3.c\r\n@@\s-28438,25\s+28438,29\s@@\r\n\s\s\s**\sbuffer,\sexcluding\sthe\sterminating\snull\schar.\r\n\s\s\s*/\r\n\s\s\sDWORD\serror\s=\sGetLastError();\r\n\s\s\sDWORD\sdwLen\s=\s0;\r\n\s\s\schar\s*zOut\s=\s0;\r\n+\s\sunion\s{\r\n+\s\s\s\sWCHAR**\spzwc;\r\n+\s\s\s\sLPWSTR\slpws;\r\n+\s\s}\swu;\r\n</pre>\r\n\r\n<pre>\r\n\s\s\sif(\sisNT()\s){\r\n-\s\s\s\sWCHAR\s*zTempWide\s=\sNULL;\r\n+\s\s\s\s*wu.pzwc\s=\sNULL;\r\n\s\s\s\s\sdwLen\s=\sFormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER\s|\sFORMAT_MESSAGE_FROM_SYSTEM\s|\sFORMAT_MESSAGE_IGNORE_INSERTS,\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sNULL,\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\serror,\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s0,\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s(LPWSTR)\s&zTempWide,\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\swu.lpws,\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s0,\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s0);\r\n\s\s\s\s\sif(\sdwLen\s>\s0\s){\r\n\s\s\s\s\s\s\s/*\sallocate\sa\sbuffer\sand\sconvert\sto\sUTF8\s*/\r\n-\s\s\s\s\s\szOut\s=\sunicodeToUtf8(zTempWide);\r\n+\s\s\s\s\s\szOut\s=\sunicodeToUtf8(*wu.pzwc);\r\n\s\s\s\s\s\s\s/*\sfree\sthe\ssystem\sbuffer\sallocated\sby\sFormatMessage\s*/\r\n-\s\s\s\s\s\sLocalFree(zTempWide);\r\n+\s\s\s\s\s\sLocalFree(*wu.pzwc);\r\n\s\s\s\s\s}\r\n\s/*\sisNT()\sis\s1\sif\sSQLITE_OS_WINCE==1,\sso\sthis\selse\sis\snever\sexecuted.\r\n\s**\sSince\sthe\sASCII\sversion\sof\sthese\sWindows\sAPI\sdo\snot\sexist\sfor\sWINCE,\r\n\s**\sit's\simportant\sto\snot\sreference\sthem\sfor\sWINCE\sbuilds.\r\n\s*/\r\n</pre>
J foundin dddc514053
J private_contact 2359089ef753bc96e12743e299243d5232c749fa
J severity Cosmetic
J status Open
J title dereferencing\stype-punned\spointer\sin\ssqlite3.c
J type Build_Problem
K 3caef588e3cc1724a8a8426e5964a0088d35b15b
U rwilson
Z 104361b4f33a9e8b2e93a6e66cd2629a