Commit Graph

14 Commits

Author SHA1 Message Date
Sean McBride
dfc2ac7296 Replaced trivial uses of sprintf with snprintf
In all these cases the size of the buffer can be computed with sizeof.
2023-12-08 13:30:38 -05:00
Dennis Heimbigner
6901206927 Regularize the semantics of mkstemp.
re: https://github.com/Unidata/netcdf-c/issues/1827

The issue is partly resolved by this PR. The proximate problem appears to be that the semantics of mkstemp in **nix is different than the semantics of _mktemp_s in Windows. I had thought they were the same but that is incorrect. The _mktemp_s function will only produce 26 different files and so the netcdf temp file code will fail after about that many iterations.

So, to solve this, I created my own version of mkstemp for windows that uses a random number generator. This appears to solve the reported issue.  I also added the testcase ncdap_test/test_manyurls but made it conditional on --enable-dap-long-tests because it is very slow.

I did note that the provided test program now fails after some 800 iterations with a libcurl error claiming it cannot resolve the host name. My belief is that the library is just running out of resources at this point: too many open curl handles or some such. I doubt if this failure is fixable.

So bottom line is that it is really important to do nc_close when you are finished with a file.

Misc. Other Changes:

1. I took the opportunity to clean up some bad string hacks in the code. Specifically
    * change all uses of strncat to strlcat
    * remove old string hacks: occoncat and occopycat
2. Add heck to see if test.opendap.org is running and if not, then skip test
3. Make CYGWIN use TEMP environment variable
2021-05-14 11:33:03 -06:00
Ward Fisher
7112422d01 ncgen3 copyright stanzas updated. 2018-12-06 15:42:41 -07:00
Dennis Heimbigner
4db4393e69 Begin changing over to use strlcat instead of strncat because
strlcat provides better protection against buffer overflows.

Code is taken from the FreeBSD project source code. Specifically:
https://github.com/freebsd/freebsd/blob/master/lib/libc/string/strlcat.c
License appears to be acceptable, but needs to be checked by e.g. Debian.

Step 1:
1. Add to netcdf-c/include/ncconfigure.h to use our version
   if not already available as determined by HAVE_STRLCAT in config.h.
2. Add the strlcat code to libdispatch/dstring.c
3. Turns out that strlcat was already defined in several places.
   So remove it from:
	ncgen3/genlib.c
	ncdump/dumplib.c
3. Define strlcat extern definition in ncconfigure.h.
4. Modify following directories to use strlcat:
	libdap2 libdap4 ncdap_test dap4_test
   Will do others in subsequent steps.
2017-11-23 10:55:24 -07:00
posophe
14b399f803 codecleanup 2015-04-18 13:07:04 +02:00
Ward Fisher
091a4f3c0c Suppressing a coverity false-positive. 2014-08-01 14:25:24 -06:00
Ward Fisher
5eaddf0212 Addressed an out-of-bound array access issue. 2014-05-13 09:50:04 -06:00
Ward Fisher
46c11d494f Corrected an issue introduced on Windows. 2014-04-23 13:50:55 -06:00
Ward Fisher
e11f22312e Fixed a declaration error in Visual Studio. 2014-04-23 13:43:36 -06:00
Ward Fisher
a4f6cfa1c3 Corrected clang-reported issue: Static array bounds overrun. 2014-04-21 10:49:39 -06:00
Ward Fisher
bb84fda8cf Removed a couple of clang-reported potential dereferences of null/undefined pointers. 2014-03-31 09:56:39 -06:00
Russ Rew
508ee74874 In load.c, follow autoconf recommendations for including config.h (www.gnu.org/software/autoconf/manual/autoconf-2.64/html_node/Configuration-Headers.html) 2013-10-25 12:46:31 -06:00
Ward Fisher
7b91248723 Merged changes from netcdf-branch.
o Changed variable names 'typeid' to 'typeid1' to avoid a namespace conflict
in visual studio.
o Cleaned up a handful of warnings in Visual Studio.
o Addressed a few Coverity-discovered issuesl
o Made changes to CMake-based builds.
2012-12-13 22:09:41 +00:00
Ed Hartnett
18f4bca367 moving to trunk subdir 2010-06-03 13:24:43 +00:00