From: larrybr Date: Sat, 11 Nov 2023 13:09:09 +0000 (+0000) Subject: Fix malf with redirected input due to bad assumption that stdin is a console in the... X-Git-Tag: version-3.45.0~134^2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2c86580246ea8103670ffd0c1949ad348f57418;p=thirdparty%2Fsqlite.git Fix malf with redirected input due to bad assumption that stdin is a console in the fgets() replacement. FossilOrigin-Name: 79d1f2c1019964dd154fbdd3f349822cb946a2600883994523ed145047f0a9ea --- diff --git a/ext/consio/console_io.c b/ext/consio/console_io.c index 5d38feef37..620200a950 100755 --- a/ext/consio/console_io.c +++ b/ext/consio/console_io.c @@ -131,7 +131,6 @@ typedef struct ConsoleInfo { PerStreamTags pstSetup[3]; PerStreamTags pstDesignated[3]; StreamsAreConsole sacSetup; - StreamsAreConsole sacDesignated; } ConsoleInfo; static short isValidStreamInfo(PerStreamTags *ppst){ @@ -141,7 +140,7 @@ static short isValidStreamInfo(PerStreamTags *ppst){ static ConsoleInfo consoleInfo = { { /* pstSetup */ CI_INITIALIZER, CI_INITIALIZER, CI_INITIALIZER }, { /* pstDesignated[] */ CI_INITIALIZER, CI_INITIALIZER, CI_INITIALIZER }, - SAC_NoConsole, SAC_NoConsole /* sacSetup, sacDesignated */ + SAC_NoConsole /* sacSetup */ }; #undef SHELL_INVALID_FILE_PTR #undef CI_INITIALIZER @@ -520,7 +519,8 @@ static int mbcsToUtf8InPlaceIfValid(char *pc, int nci, int nco, UINT codePage){ SQLITE_INTERNAL_LINKAGE char* fGetsUtf8(char *cBuf, int ncMax, FILE *pfIn){ if( pfIn==0 ) pfIn = stdin; #if SHELL_CON_TRANSLATE - if( pfIn == consoleInfo.pstSetup[0].pf ){ + if( pfIn == consoleInfo.pstSetup[0].pf + && (consoleInfo.sacSetup & SAC_InConsole)!=0 ){ # if SHELL_CON_TRANSLATE==1 # define SHELL_GULP 150 /* Count of WCHARS to be gulped at a time */ WCHAR wcBuf[SHELL_GULP+1]; diff --git a/manifest b/manifest index c56d84fa85..2068eb4fbc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Pervasive\schanges\sto\sconsole_io.{c,h}\sin\ssupport\sof\ssimplifying\subiquitous\semit\sops\sin\sshell,\sand\sto\sget\sbetter\scontrol\sof\sconsole\sstreams\sthat\smight\sbe\sopened\sonly\svia\s.read\sor\s.output\scommands.\sChanges\sto\sshell\sto\suse\s{s,o,e}put{f,z}(...)\scalls\sfor\sinitial\stesting,\sbut\sthis\scheck-in\shas\sfew\ssuch\sconversions\sso\sthat\smost\swill\sbe\sin\sa\sseparate\scheck-in.\sMany\srenames\sto\sbetter\sfollow\srecent\scoding\sconvention.\sThis\scode\sseems\sto\sbe\sworking,\sbut\shas\snot\sbeen\stested\son\sdifficult\splatforms\sor\swith\smultiple\sconsole\shosts\syet.\sSo\sit\sis\sa\sWIP. -D 2023-11-11T06:20:38.614 +C Fix\smalf\swith\sredirected\sinput\sdue\sto\sbad\sassumption\sthat\sstdin\sis\sa\sconsole\sin\sthe\sfgets()\sreplacement. +D 2023-11-11T13:09:09.686 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -50,7 +50,7 @@ F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd F ext/async/README.txt e12275968f6fde133a80e04387d0e839b0c51f91 F ext/async/sqlite3async.c 6f247666b495c477628dd19364d279c78ea48cd90c72d9f9b98ad1aff3294f94 F ext/async/sqlite3async.h 46b47c79357b97ad85d20d2795942c0020dc20c532114a49808287f04aa5309a -F ext/consio/console_io.c 19344e149e5c939c3c421823033abd4179d276ec1dae5f99e37d5bcd68ddbd59 x +F ext/consio/console_io.c c1e16d6c41a04952784abc4b055c5739c1ee3163aa475859725b66d1ccc656bd x F ext/consio/console_io.h c64d51d9f4e387679027d3b0977893390652f40c2e50a3c797506a9abb4856dc F ext/expert/README.md b321c2762bb93c18ea102d5a5f7753a4b8bac646cb392b3b437f633caf2020c3 F ext/expert/expert.c d548d603a4cc9e61f446cc179c120c6713511c413f82a4a32b1e1e69d3f086a4 @@ -2141,8 +2141,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P d5e88fcde53ca7ba05bb164943a9f57bd92080bb7e5eebbbed64b9886ac97338 3978c084a509c3c739fbe87e20feec9ddf1325e35170329987af197ca9fd731a f1eae192315335d7e385b0a801a17700a9718d245bda6628518c5df9a1e9d3d6 -R 13fdfe04f23cf8d5bcfae91b277b730e +P 14762a004cdf37d1e12f26aadff8ed3824893278f22ff141de86dd44d9b250f3 +R 5b544ddbaeeb17ecd11dc0a538d27e36 U larrybr -Z 7767a4710aecdf1826b87f96aec24468 +Z d3728cfdee8358558d79b5ead14c0ffb # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 340d950f96..f798d85bff 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -14762a004cdf37d1e12f26aadff8ed3824893278f22ff141de86dd44d9b250f3 \ No newline at end of file +79d1f2c1019964dd154fbdd3f349822cb946a2600883994523ed145047f0a9ea \ No newline at end of file