[brlcad-commits] SF.net SVN: brlcad: [30039] brlcad/trunk/src/libbu
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <br...@us...> - 2008-01-22 08:04:22
|
Revision: 30039 http://brlcad.svn.sourceforge.net/brlcad/?rev=30039&view=rev Author: brlcad Date: 2008-01-22 00:04:25 -0800 (Tue, 22 Jan 2008) Log Message: ----------- more conversion over to the new bu_strlcpy/bu_strlcat routines for more consistent null-termination and bounds checking. (vls and parse are still not modified as some of their callers seem to be buffers instead of C-strings) Modified Paths: -------------- brlcad/trunk/src/libbu/brlcad_path.c brlcad/trunk/src/libbu/convert.c brlcad/trunk/src/libbu/image.c brlcad/trunk/src/libbu/lex.c brlcad/trunk/src/libbu/units.c brlcad/trunk/src/libbu/whereis.c brlcad/trunk/src/libbu/which.c Modified: brlcad/trunk/src/libbu/brlcad_path.c =================================================================== --- brlcad/trunk/src/libbu/brlcad_path.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/brlcad_path.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -360,7 +360,7 @@ /* start fresh */ memset(result, 0, (size_t)MAXPATHLEN); - strncpy(result, lhs, (size_t)MAXPATHLEN); + bu_strlcpy(result, lhs, (size_t)MAXPATHLEN); /* nothing to add, so just return what we have */ if (!rhs || (rlen == 0)) { @@ -388,7 +388,7 @@ } /* found a match */ - strncpy(result+llen, rhs, (size_t)(MAXPATHLEN - llen)); + bu_strlcpy(result+llen, rhs, (size_t)(MAXPATHLEN - llen)); if (bu_file_exists(result)) { return 1; } Modified: brlcad/trunk/src/libbu/convert.c =================================================================== --- brlcad/trunk/src/libbu/convert.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/convert.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -175,7 +175,7 @@ } buflen--; if ( cookie == 0 ) { - strncpy( cp, "bogus!", buflen ); + bu_strlcpy( cp, "bogus!", buflen ); return; } @@ -223,17 +223,17 @@ buflen--; break; case CV_16: - strncpy( cp, "16", buflen ); + bu_strlcpy( cp, "16", buflen ); cp += 2; buflen -= 2; break; case CV_32: - strncpy( cp, "32", buflen ); + bu_strlcpy( cp, "32", buflen ); cp += 2; buflen -= 2; break; case CV_64: - strncpy( cp, "64", buflen ); + bu_strlcpy( cp, "64", buflen ); cp += 2; buflen -= 2; break; Modified: brlcad/trunk/src/libbu/image.c =================================================================== --- brlcad/trunk/src/libbu/image.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/image.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -77,7 +77,7 @@ guess_file_format(char *filename, char *trimmedname) { /* look for the FMT: header */ -#define CMP(name) if (!strncmp(filename, #name":", strlen(#name))){strncpy(trimmedname, filename+strlen(#name)+1, BUFSIZ);return BU_IMAGE_##name; } +#define CMP(name) if (!strncmp(filename, #name":", strlen(#name))){bu_strlcpy(trimmedname, filename+strlen(#name)+1, BUFSIZ);return BU_IMAGE_##name; } CMP(PIX); CMP(PNG); CMP(BMP); @@ -85,7 +85,7 @@ #undef CMP /* no format header found, copy the name as it is */ - strncpy(trimmedname, filename, BUFSIZ); + bu_strlcpy(trimmedname, filename, BUFSIZ); /* and guess based on extension */ #define CMP(name, ext) if (!strncmp(filename+strlen(filename)-strlen(#name)-1, "."#ext, strlen(#name)+1)) return BU_IMAGE_##name; Modified: brlcad/trunk/src/libbu/lex.c =================================================================== --- brlcad/trunk/src/libbu/lex.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/lex.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -147,12 +147,16 @@ * if we had NUMBER. or NUMBERe{+|-} that has be replaced (cp) */ *used = cp - sp -1; - if (*used == 0) *used = 1; + if (*used == 0) + *used = 1; + unit = (char *)bu_malloc(*used+1, "unit token"); - strncpy(unit, sp, *used); - unit[*used] = '\0'; + bu_strlcpy(unit, sp, *used+1); *used = sp-bu_vls_addr(rtstr) + *used; - if (*used == 0) *used = 1; + + if (*used == 0) + *used = 1; + return unit; } Modified: brlcad/trunk/src/libbu/units.c =================================================================== --- brlcad/trunk/src/libbu/units.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/units.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -102,8 +102,7 @@ char ubuf[256]; int len; - strncpy( ubuf, str, sizeof(ubuf)-1 ); - ubuf[sizeof(ubuf)-1] = '\0'; + bu_strlcpy( ubuf, str, sizeof(ubuf) ); /* Copy the given string, making it lower case */ ip = ubuf; Modified: brlcad/trunk/src/libbu/whereis.c =================================================================== --- brlcad/trunk/src/libbu/whereis.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/whereis.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -91,7 +91,7 @@ memset(bu_whereis_result, 0, MAXPATHLEN); /* check for full/relative path match */ - strncpy(bu_whereis_result, cmd, MAXPATHLEN-1); + bu_strlcpy(bu_whereis_result, cmd, MAXPATHLEN); if (strcmp(bu_whereis_result, cmd) != 0) { if (bu_debug & BU_DEBUG_PATHS) { bu_log("command [%s] is too long\n", cmd); Modified: brlcad/trunk/src/libbu/which.c =================================================================== --- brlcad/trunk/src/libbu/which.c 2008-01-22 08:00:53 UTC (rev 30038) +++ brlcad/trunk/src/libbu/which.c 2008-01-22 08:04:25 UTC (rev 30039) @@ -82,7 +82,7 @@ memset(bu_which_result, 0, MAXPATHLEN); /* check for full/relative path match */ - strncpy(bu_which_result, cmd, MAXPATHLEN-1); + bu_strlcpy(bu_which_result, cmd, MAXPATHLEN); if (strcmp(bu_which_result, cmd) != 0) { if (bu_debug & BU_DEBUG_PATHS) { bu_log("command [%s] is too long\n", cmd); @@ -97,7 +97,7 @@ /* load up the PATH from the caller's user environment */ gotpath = getenv("PATH"); if (gotpath) { - strncpy(PATH, gotpath, MAXPATHENV-1); + bu_strlcpy(PATH, gotpath, MAXPATHENV); /* make sure it fit, we have a problem if it did not */ if (strcmp(PATH, gotpath) != 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |