author | erik <erik> | 2007-01-26 20:24:07 (UTC) |
---|---|---|
committer | erik <erik> | 2007-01-26 20:24:07 (UTC) |
commit | cc5b326a212414a612838b0041e6077477ebbc70 (patch) (side-by-side diff) | |
tree | fd69c302a511c3bc715ff0e160181b9ad1cbf82d | |
parent | 53d630c9c4813142ee13e6843c30476a5db26e78 (diff) | |
download | opie-cc5b326a212414a612838b0041e6077477ebbc70.zip opie-cc5b326a212414a612838b0041e6077477ebbc70.tar.gz opie-cc5b326a212414a612838b0041e6077477ebbc70.tar.bz2 |
A couple of places where a string is overrun. This fixes both of them.
-rw-r--r-- | noncore/apps/opie-reader/chm_lib.c | 5 | ||||
-rw-r--r-- | noncore/settings/sysinfo/contrib/dhry.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/noncore/apps/opie-reader/chm_lib.c b/noncore/apps/opie-reader/chm_lib.c index ecf8278..7acd1d2 100644 --- a/noncore/apps/opie-reader/chm_lib.c +++ b/noncore/apps/opie-reader/chm_lib.c @@ -1597,13 +1597,13 @@ int chm_enumerate_dir(struct chmFile *h, struct chmUnitInfo ui; int flag; /* the length of the prefix */ char prefixRectified[CHM_MAX_PATHLEN+1]; int prefixLen; - char lastPath[CHM_MAX_PATHLEN]; + char lastPath[CHM_MAX_PATHLEN+1]; int lastPathLen; /* starting page */ curPage = h->index_head; /* initialize pathname state */ @@ -1667,13 +1667,14 @@ int chm_enumerate_dir(struct chmFile *h, /* check if we should include this path */ if (lastPathLen != -1) { if (strncmp(ui.path, lastPath, lastPathLen) == 0) continue; } - strcpy(lastPath, ui.path); + strncpy(lastPath, ui.path, CHM_MAX_PATHLEN); + lastPath[CHM_MAX_PATHLEN] = '\0'; lastPathLen = strlen(lastPath); /* check for DIRS */ if (ui.length == 0 && !(what & CHM_ENUMERATE_DIRS)) continue; diff --git a/noncore/settings/sysinfo/contrib/dhry.c b/noncore/settings/sysinfo/contrib/dhry.c index 20b627c..07fd1c0 100644 --- a/noncore/settings/sysinfo/contrib/dhry.c +++ b/noncore/settings/sysinfo/contrib/dhry.c @@ -492,13 +492,13 @@ int Int_Glob; Boolean Bool_Glob; char Ch_1_Glob, Ch_2_Glob; int Arr_1_Glob [50]; int Arr_2_Glob [50] [50]; -char Reg_Define[] = "Register option selected."; +char Reg_Define[32] = "Register option selected."; //extern char *malloc (); Enumeration Func_1 (); /* forward declaration necessary since Enumeration may not simply be int */ @@ -980,13 +980,13 @@ double dhry_main( int n ) Vax_Mips = Dhrystones_Per_Second / 1757.0; #ifdef ROPT //printf ("Register option selected? YES\n"); #else //printf ("Register option selected? NO\n"); - strcpy(Reg_Define, "Register option not selected."); + strncpy(Reg_Define, "Register option not selected.", 30); #endif printf ("Microseconds for one run through Dhrystone: "); printf ("%7.1lf \n", Microseconds); printf ("Dhrystones per Second: "); printf ("%10.1lf \n", Dhrystones_Per_Second); printf ("VAX MIPS rating = %10.3lf \n",Vax_Mips); |