File ncurses-5.9-bsc1115929.patch of Package ncurses.25104

For bug bsc#1115929 port back null pointer checks
to catch e.g. the crash in _nc_parse_entry()

---
 form/frm_driver.c           |    2 +-
 ncurses/tinfo/comp_parse.c  |    6 +++++-
 ncurses/tinfo/parse_entry.c |    3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

--- form/frm_driver.c
+++ form/frm_driver.c	2018-11-20 09:46:26.195713565 +0000
@@ -4353,7 +4353,7 @@ form_driver(FORM *form, int c)
   if (!form)
     RETURN(E_BAD_ARGUMENT);
 
-  if (!(form->field))
+  if (!(form->field) || !(form->current))
     RETURN(E_NOT_CONNECTED);
 
   assert(form->page);
--- ncurses/tinfo/comp_parse.c
+++ ncurses/tinfo/comp_parse.c	2018-11-20 09:38:48.206001951 +0000
@@ -425,6 +425,9 @@ _nc_resolve_uses2(bool fullresolve, bool
 	    char *lookfor = qp->uses[i].name;
 	    long lookline = qp->uses[i].line;
 
+	    if (lookfor == 0)
+		continue;
+
 	    foundit = FALSE;
 
 	    _nc_set_type(child);
@@ -502,7 +505,8 @@ _nc_resolve_uses2(bool fullresolve, bool
 		     * subsequent pass.
 		     */
 		    for (i = 0; i < qp->nuses; i++)
-			if (qp->uses[i].link->nuses) {
+			if (qp->uses[i].link
+			    && qp->uses[i].link->nuses) {
 			    DEBUG(2, ("%s: use entry %d unresolved",
 				      _nc_first_name(qp->tterm.term_names), i));
 			    goto incomplete;
--- ncurses/tinfo/parse_entry.c
+++ ncurses/tinfo/parse_entry.c	2018-11-20 09:42:59.245131721 +0000
@@ -544,7 +544,8 @@ _nc_parse_entry(ENTRY * entryp, int lite
 		 * have picked up defaults via translation.
 		 */
 		for (i = 0; i < entryp->nuses; i++)
-		    if (!strchr((char *) entryp->uses[i].name, '+'))
+		    if (entryp->uses[i].name != 0
+			&& !strchr((char *) entryp->uses[i].name, '+'))
 			has_base_entry = TRUE;
 	    }
 
openSUSE Build Service is sponsored by