From: <kin...@us...> - 2011-05-13 22:00:42
|
Revision: 4771 http://teem.svn.sourceforge.net/teem/?rev=4771&view=rev Author: kindlmann Date: 2011-05-13 22:00:36 +0000 (Fri, 13 May 2011) Log Message: ----------- slightly more robust against a NULL pointer Modified Paths: -------------- teem/trunk/src/hest/usage.c Modified: teem/trunk/src/hest/usage.c =================================================================== --- teem/trunk/src/hest/usage.c 2011-05-13 06:25:38 UTC (rev 4770) +++ teem/trunk/src/hest/usage.c 2011-05-13 22:00:36 UTC (rev 4771) @@ -207,8 +207,12 @@ parm = !_parm ? hestParmNew() : _parm; if (info) { - fprintf(file, "\n%s: ", argv0); - _hestPrintStr(file, 0, strlen(argv0) + 2, parm->columns, info, AIR_FALSE); + if (argv0) { + fprintf(file, "\n%s: ", argv0); + _hestPrintStr(file, 0, strlen(argv0) + 2, parm->columns, info, AIR_FALSE); + } else { + fprintf(file, "ERROR: hestInfo got NULL argv0\n"); + } } parm = !_parm ? hestParmFree(parm) : NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2012-09-21 21:09:09
|
Revision: 5578 http://teem.svn.sourceforge.net/teem/?rev=5578&view=rev Author: kindlmann Date: 2012-09-21 21:09:03 +0000 (Fri, 21 Sep 2012) Log Message: ----------- more using of AIR_UINT for size_t info loss warnings Modified Paths: -------------- teem/trunk/src/hest/usage.c Modified: teem/trunk/src/hest/usage.c =================================================================== --- teem/trunk/src/hest/usage.c 2012-09-21 21:06:19 UTC (rev 5577) +++ teem/trunk/src/hest/usage.c 2012-09-21 21:09:03 UTC (rev 5578) @@ -210,7 +210,8 @@ if (info) { if (argv0) { fprintf(file, "\n%s: ", argv0); - _hestPrintStr(file, 0, strlen(argv0) + 2, parm->columns, info, AIR_FALSE); + _hestPrintStr(file, 0, AIR_UINT(strlen(argv0)) + 2, + parm->columns, info, AIR_FALSE); } else { fprintf(file, "ERROR: hestInfo got NULL argv0\n"); } @@ -249,7 +250,8 @@ strcat(buff, "]"); } - _hestPrintStr(f, strlen("Usage: "), 0, parm->columns, buff, AIR_TRUE); + _hestPrintStr(f, AIR_UINT(strlen("Usage: ")), 0, + parm->columns, buff, AIR_TRUE); parm = !_parm ? hestParmFree(parm) : NULL; return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2013-10-25 08:24:22
|
Revision: 6148 http://sourceforge.net/p/teem/code/6148 Author: kindlmann Date: 2013-10-25 08:24:19 +0000 (Fri, 25 Oct 2013) Log Message: ----------- fixing warnings about not using set values Modified Paths: -------------- teem/trunk/src/hest/usage.c Modified: teem/trunk/src/hest/usage.c =================================================================== --- teem/trunk/src/hest/usage.c 2013-10-25 08:18:47 UTC (rev 6147) +++ teem/trunk/src/hest/usage.c 2013-10-25 08:24:19 UTC (rev 6148) @@ -185,7 +185,7 @@ parm = hestParmNew(); if (_hestPanic(opt, NULL, parm)) { - parm = hestParmFree(parm); + hestParmFree(parm); return _hestMax(-1); } count = 0; @@ -198,7 +198,7 @@ } } } - parm = hestParmFree(parm); + hestParmFree(parm); return count; } @@ -231,7 +231,9 @@ if (_hestPanic(opt, NULL, parm)) { /* we can't continue; the opt array is botched */ - parm = !_parm ? hestParmFree(parm) : NULL; + if (!_parm) { + hestParmFree(parm); + } return; } @@ -254,8 +256,9 @@ _hestPrintStr(f, AIR_UINT(strlen("Usage: ")), 0, parm->columns, buff, AIR_TRUE); - - parm = !_parm ? hestParmFree(parm) : NULL; + if (!_parm) { + hestParmFree(parm); + } return; } @@ -269,7 +272,9 @@ if (_hestPanic(opt, NULL, parm)) { /* we can't continue; the opt array is botched */ - parm = !_parm ? hestParmFree(parm) : NULL; + if (!_parm) { + hestParmFree(parm); + } return; } @@ -414,7 +419,9 @@ } _hestPrintStr(f, maxlen + 3, maxlen + 3, parm->columns, buff, AIR_FALSE); } - parm = !_parm ? hestParmFree(parm) : NULL; + if (!_parm) { + hestParmFree(parm); + } return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2023-07-11 21:33:11
|
Revision: 7072 http://sourceforge.net/p/teem/code/7072 Author: kindlmann Date: 2023-07-11 21:33:08 +0000 (Tue, 11 Jul 2023) Log Message: ----------- crude fix to buffer overflow problem Modified Paths: -------------- teem/trunk/src/hest/usage.c Modified: teem/trunk/src/hest/usage.c =================================================================== --- teem/trunk/src/hest/usage.c 2023-07-11 21:18:05 UTC (rev 7071) +++ teem/trunk/src/hest/usage.c 2023-07-11 21:33:08 UTC (rev 7072) @@ -230,7 +230,10 @@ void hestUsage(FILE *f, hestOpt *opt, const char *argv0, const hestParm *_parm) { int i, numOpts; - char buff[2 * AIR_STRLEN_HUGE + 1], tmpS[AIR_STRLEN_HUGE + 1]; + /* with a very large number of options, it is possible to overflow buff[]. + Previous to the 2023 revisit, it was for max lenth 2*AIR_STRLEN_HUGE, but + test/ex6.c blew past that. May have to increment again in the future :) */ + char buff[64 * AIR_STRLEN_HUGE + 1], tmpS[AIR_STRLEN_SMALL + 1]; hestParm *parm; parm = _parm ? NULL : hestParmNew(); @@ -271,7 +274,8 @@ hestGlossary(FILE *f, hestOpt *opt, const hestParm *_parm) { int i, j, maxlen, numOpts; unsigned int len; - char buff[2 * AIR_STRLEN_HUGE + 1], tmpS[AIR_STRLEN_HUGE + 1]; + /* See note above about overflowing buff[] */ + char buff[64 * AIR_STRLEN_HUGE + 1], tmpS[AIR_STRLEN_HUGE + 1]; hestParm *parm; parm = _parm ? NULL : hestParmNew(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |