X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Ftinfo%2Fdb_iterator.c;fp=ncurses%2Ftinfo%2Fdb_iterator.c;h=8af267bcb8559fb504b0be2f62692744b58f4dd6;hb=8b06e371ed1bce3dd6f37138e6becb5e1a562fe0;hp=ce84fad33686c34ae06d96d4a31d786a2d320620;hpb=a3173aa5edbdbc6d617800f81a88a304ac5e053c;p=ncurses.git diff --git a/ncurses/tinfo/db_iterator.c b/ncurses/tinfo/db_iterator.c index ce84fad3..8af267bc 100644 --- a/ncurses/tinfo/db_iterator.c +++ b/ncurses/tinfo/db_iterator.c @@ -43,7 +43,7 @@ #include #endif -MODULE_ID("$Id: db_iterator.c,v 1.28 2012/01/21 23:56:17 tom Exp $") +MODULE_ID("$Id: db_iterator.c,v 1.31 2012/02/22 22:40:24 tom Exp $") #define HaveTicDirectory _nc_globals.have_tic_directory #define KeepTicDirectory _nc_globals.keep_tic_directory @@ -55,13 +55,15 @@ MODULE_ID("$Id: db_iterator.c,v 1.28 2012/01/21 23:56:17 tom Exp $") #define my_vars _nc_globals.dbd_vars static void -add_to_blob(const char *text) +add_to_blob(const char *text, size_t limit) { + (void) limit; + if (*text != '\0') { char *last = my_blob + strlen(my_blob); if (last != my_blob) *last++ = NCURSES_PATHSEP; - strcpy(last, text); + _nc_STRCPY(last, text, limit); } } @@ -77,7 +79,7 @@ check_existence(const char *name, struct stat *sb) #if USE_HASHED_DB else if (strlen(name) < PATH_MAX - sizeof(DBM_SUFFIX)) { char temp[PATH_MAX]; - sprintf(temp, "%s%s", name, DBM_SUFFIX); + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%s%s", name, DBM_SUFFIX); if (stat(temp, sb) == 0 && S_ISREG(sb->st_mode)) { result = TRUE; } @@ -303,7 +305,7 @@ _nc_first_db(DBDIRS * state, int *offset) if (my_blob != 0) { *my_blob = '\0'; for (j = 0; j < dbdLAST; ++j) { - add_to_blob(values[j]); + add_to_blob(values[j], blobsize); } /* Now, build an array which will be pointers to the distinct