Commit Graph

15 Commits

Author SHA1 Message Date
Sean McBride
4188db2817 Auto fixed clang-tidy readability-redundant-control-flow warnings 2024-03-01 20:46:58 -05:00
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