From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]); by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 58eb917f; for ; Thu, 1 Jan 2015 10:36:38 -0500 (EST) Date: Thu, 1 Jan 2015 10:36:38 -0500 (EST) Message-Id: <3196570219988506210.enqueue@fantadrom.bsd.lv> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Don't dereference NULL pointers when formatting missing X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Don't dereference NULL pointers when formatting missing denominators, subscripts, superscripts, or "from" or "to" arguments. Found by jsg@ with afl. Modified Files: -------------- mdocml: LICENSE eqn_term.c Revision Data ------------- Index: eqn_term.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/eqn_term.c,v retrieving revision 1.7 retrieving revision 1.8 diff -Leqn_term.c -Leqn_term.c -u -p -r1.7 -r1.8 --- eqn_term.c +++ eqn_term.c @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2011 Kristaps Dzonsons - * Copyright (c) 2014 Ingo Schwarze + * Copyright (c) 2014, 2015 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -79,14 +79,17 @@ eqn_box(struct termp *p, const struct eq bp->pos == EQNPOS_TO) ? "^" : "_"); p->flags |= TERMP_NOSPACE; child = child->next; - eqn_box(p, child); - if (bp->pos == EQNPOS_FROMTO || - bp->pos == EQNPOS_SUBSUP) { - p->flags |= TERMP_NOSPACE; - term_word(p, "^"); - p->flags |= TERMP_NOSPACE; - child = child->next; + if (child != NULL) { eqn_box(p, child); + if (bp->pos == EQNPOS_FROMTO || + bp->pos == EQNPOS_SUBSUP) { + p->flags |= TERMP_NOSPACE; + term_word(p, "^"); + p->flags |= TERMP_NOSPACE; + child = child->next; + if (child != NULL) + eqn_box(p, child); + } } } else { child = bp->first; Index: LICENSE =================================================================== RCS file: /home/cvs/mdocml/mdocml/LICENSE,v retrieving revision 1.5 retrieving revision 1.6 diff -LLICENSE -LLICENSE -u -p -r1.5 -r1.6 --- LICENSE +++ LICENSE @@ -5,7 +5,7 @@ contained in the mdocml toolkit is prote of the following developers: Copyright (c) 2008-2012, 2014 Kristaps Dzonsons -Copyright (c) 2010, 2011, 2012, 2013, 2014 Ingo Schwarze +Copyright (c) 2010-2015 Ingo Schwarze Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger Copyright (c) 2013 Franco Fichtner Copyright (c) 1999, 2004 Marc Espie -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv