X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fmake_hash.c;h=692113b597dd272e6eb25689f605200f006bc39b;hp=31f21005f4187c639084c3edc4e65e1cb66581bf;hb=93ed44d781ca36f55021e0ad55f1ce33de62f7ba;hpb=f486c68b1efe3bab5739c3f464fde6685a52bee5 diff --git a/ncurses/tinfo/make_hash.c b/ncurses/tinfo/make_hash.c index 31f21005..692113b5 100644 --- a/ncurses/tinfo/make_hash.c +++ b/ncurses/tinfo/make_hash.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -44,7 +44,7 @@ #include -MODULE_ID("$Id: make_hash.c,v 1.12 2013/02/16 21:27:50 tom Exp $") +MODULE_ID("$Id: make_hash.c,v 1.14 2017/06/23 23:53:13 tom Exp $") /* * _nc_make_hash_table() @@ -69,10 +69,11 @@ failed(const char *s) static char * strmalloc(char *s) { - char *result = malloc(strlen(s) + 1); + size_t need = strlen(s) + 1; + char *result = malloc(need); if (result == 0) - failed("strmalloc"); - strcpy(result, s); + failed("strmalloc"); + _nc_STRCPY(result, s, need); return result; } @@ -325,5 +326,11 @@ main(int argc, char **argv) printf("#endif\n\n"); free(hash_table); +#if NO_LEAKS + for (n = 0; (n < CAPTABSIZE); ++n) { + free((char *) name_table[n].nte_name); + } + free(name_table); +#endif return EXIT_SUCCESS; }