Make sure tspace is large enough to hold all capabilities.
This commit is contained in:
parent
221a99f782
commit
2d0dfab73b
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: setterm.c,v 1.24 2000/06/03 06:33:12 blymn Exp $ */
|
||||
/* $NetBSD: setterm.c,v 1.25 2000/06/12 20:48:34 jdc Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1981, 1993, 1994
|
||||
|
@ -38,7 +38,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)setterm.c 8.8 (Berkeley) 10/25/94";
|
||||
#else
|
||||
__RCSID("$NetBSD: setterm.c,v 1.24 2000/06/03 06:33:12 blymn Exp $");
|
||||
__RCSID("$NetBSD: setterm.c,v 1.25 2000/06/12 20:48:34 jdc Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -285,7 +285,7 @@ zap(struct tinfo *tinfo)
|
|||
*tmp = *namp;
|
||||
*(tmp + 1) = *(namp + 1);
|
||||
t_getstr(tinfo, tmp, NULL, &i);
|
||||
tspace_size += i;
|
||||
tspace_size += i + 1;
|
||||
namp += 2;
|
||||
} while (*namp);
|
||||
|
||||
|
@ -340,11 +340,12 @@ getcap(char *name)
|
|||
char *new_tspace;
|
||||
|
||||
/* verify cap exists and grab size of it at the same time */
|
||||
t_getstr(_cursesi_genbuf, name, NULL, &ent_size);
|
||||
if (t_getstr(_cursesi_genbuf, name, NULL, &ent_size) == ERR)
|
||||
return ERR;
|
||||
|
||||
/* grow tspace to hold the new cap */
|
||||
if ((new_tspace = realloc(tspace, ent_size + tspace_size)) == NULL)
|
||||
return NULL;
|
||||
return ERR;
|
||||
|
||||
/* point aoftspace to the same place in the newly allocated buffer */
|
||||
offset = aoftspace - tspace;
|
||||
|
|
Loading…
Reference in New Issue