tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: Ingo Schwarze <schwarze@usta.de>
To: tech@mdocml.bsd.lv
Subject: Re: mdocml version 1.12.0 available
Date: Sun, 16 Oct 2011 12:35:04 +0200	[thread overview]
Message-ID: <20111016103504.GB27850@iris.usta.de> (raw)
In-Reply-To: <20111015182816.GA10574@britannica.bec.de>

Hi Joerg,

Joerg Sonnenberger wrote on Sat, Oct 15, 2011 at 08:28:16PM +0200:
> On Sat, Oct 15, 2011 at 05:02:49PM +0200, Ingo Schwarze wrote:
>> Ulrich Spörlein wrote on Thu, Oct 13, 2011 at 11:55:25AM +0200:
>>> On Thu, 2011-10-13 at 02:50:45 +0200, Ingo Schwarze wrote:
>>>> Joerg Sonnenberger wrote on Tue, Oct 11, 2011 at 04:56:41PM +0200:

>>>>> /home/joerg/work/NetBSD/cvs/src/external/bsd/mdocml/bin/mandoc/../../dist/mdoc_term.c:617:7: warning: Access to field 'prev' results in a dereference of a null pointer (loaded from variable 'n')
>>>>>                 if (n->prev && MDOC_It == n->prev->tok) {
>>>>>                     ^
>>>>> /home/joerg/work/NetBSD/cvs/src/external/bsd/mdocml/bin/mandoc/../../dist/mdoc_term.c:611:7: warning: Access to field 'prev' results in a dereference of a null pointer (loaded from variable 'n')
>>>>>                 if (n->prev && MDOC_It == n->prev->tok)
>>>>>                     ^

>>>> I have no idea why clang thinks n might be NULL here.
>>>> Do you understand that?
>>>> Or is this just a false positive?

>>> print_bvspace could have been called with n being NULL.

>> No, i just checked all callers.
>> All callers access n before calling print_bvspace,
>> so it's a false positive.

> That's not clear from the code flow and given that there are explicit
> checks for NULL around, it punts. You could make this assumptions clear
> with an assert.

Hm, i see, that won't do any harm.
Patch updated; i still see no regressions.

OK?
  Ingo


Index: man_validate.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/man_validate.c,v
retrieving revision 1.47
diff -u -p -r1.47 man_validate.c
--- man_validate.c	18 Sep 2011 15:54:48 -0000	1.47
+++ man_validate.c	16 Oct 2011 10:28:55 -0000
@@ -209,12 +209,12 @@ check_text(CHKARGS)
 {
 	char		*cp, *p;
 
-	cp = p = n->string;
-	for (cp = p; NULL != (p = strchr(p, '\t')); p++) {
-		if (MAN_LITERAL & m->flags)
-			continue;
+	if (MAN_LITERAL & m->flags)
+		return;
+
+	cp = n->string;
+	for (p = cp; NULL != (p = strchr(p, '\t')); p++)
 		man_pmsg(m, n->line, (int)(p - cp), MANDOCERR_BADTAB);
-	}
 }
 
 #define	INEQ_DEFINE(x, ineq, name) \
@@ -470,7 +470,6 @@ post_UC(CHKARGS)
 	const char	*p, *s;
 
 	n = n->child;
-	n = m->last->child;
 
 	if (NULL == n || MAN_TEXT != n->type)
 		p = bsd_versions[0];
Index: mdoc_html.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_html.c,v
retrieving revision 1.63
diff -u -p -r1.63 mdoc_html.c
--- mdoc_html.c	9 Oct 2011 22:10:51 -0000	1.63
+++ mdoc_html.c	16 Oct 2011 10:28:55 -0000
@@ -499,7 +499,7 @@ mdoc_root_post(MDOC_ARGS)
 	print_otag(h, TAG_COL, 1, tag);
 	print_otag(h, TAG_COL, 1, tag);
 
-	t = print_otag(h, TAG_TBODY, 0, NULL);
+	print_otag(h, TAG_TBODY, 0, NULL);
 
 	tt = print_otag(h, TAG_TR, 0, NULL);
 
Index: mdoc_macro.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_macro.c,v
retrieving revision 1.69
diff -u -p -r1.69 mdoc_macro.c
--- mdoc_macro.c	18 Sep 2011 15:54:48 -0000	1.69
+++ mdoc_macro.c	16 Oct 2011 10:28:56 -0000
@@ -1428,18 +1428,15 @@ blk_part_exp(MACRO_PROT_ARGS)
 
 	/* Clean-up to leave in a consistent state. */
 
-	if (NULL == head) {
+	if (NULL == head)
 		if ( ! mdoc_head_alloc(m, line, ppos, tok))
 			return(0);
-		head = m->last;
-	}
 
 	if (NULL == body) {
 		if ( ! rew_sub(MDOC_HEAD, m, tok, line, ppos))
 			return(0);
 		if ( ! mdoc_body_alloc(m, line, ppos, tok))
 			return(0);
-		body = m->last;
 	}
 
 	/* Standard appending of delimiters. */
Index: mdoc_term.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_term.c,v
retrieving revision 1.137
diff -u -p -r1.137 mdoc_term.c
--- mdoc_term.c	20 Sep 2011 09:02:18 -0000	1.137
+++ mdoc_term.c	16 Oct 2011 10:28:56 -0000
@@ -580,6 +580,8 @@ print_bvspace(struct termp *p, 
 {
 	const struct mdoc_node	*nn;
 
+	assert(n);
+
 	term_newln(p);
 
 	if (MDOC_Bd == bl->tok && bl->norm->Bd.comp)
Index: mdoc_validate.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/mdoc_validate.c,v
retrieving revision 1.95
diff -u -p -r1.95 mdoc_validate.c
--- mdoc_validate.c	18 Sep 2011 15:54:48 -0000	1.95
+++ mdoc_validate.c	16 Oct 2011 10:28:56 -0000
@@ -541,12 +541,11 @@ check_text(struct mdoc *m, int ln, int p
 {
 	char		*cp;
 
-	cp = p;
-	for (cp = p; NULL != (p = strchr(p, '\t')); p++) {
-		if (MDOC_LITERAL & m->flags)
-			continue;
+	if (MDOC_LITERAL & m->flags)
+		return;
+
+	for (cp = p; NULL != (p = strchr(p, '\t')); p++)
 		mdoc_pmsg(m, ln, pos + (int)(p - cp), MANDOCERR_BADTAB);
-	}
 }
 
 static int
Index: term_ps.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/term_ps.c,v
retrieving revision 1.18
diff -u -p -r1.18 term_ps.c
--- term_ps.c	18 Sep 2011 15:54:48 -0000	1.18
+++ term_ps.c	16 Oct 2011 10:28:57 -0000
@@ -488,8 +488,7 @@ pspdf_alloc(char *outopts)
 			pagey = 356;
 		} else if (2 != sscanf(pp, "%ux%u", &pagex, &pagey))
 			fprintf(stderr, "%s: Unknown paper\n", pp);
-	} else if (NULL == pp)
-		pp = "letter";
+	}
 
 	/* 
 	 * This MUST be defined before any PNT2AFM or AFM2PNT
@@ -576,7 +575,7 @@ ps_printf(struct termp *p, const char *f
 	ps_growbuf(p, PS_BUFSLOP);
 
 	pos = (int)p->ps->psmargcur;
-	len = vsnprintf(&p->ps->psmarg[pos], PS_BUFSLOP, fmt, ap);
+	vsnprintf(&p->ps->psmarg[pos], PS_BUFSLOP, fmt, ap);
 
 	va_end(ap);
 
--
 To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv

  reply	other threads:[~2011-10-16 10:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4E90B130.3080008@bsd.lv>
     [not found] ` <20111011145641.GA25314@britannica.bec.de>
2011-10-13  0:50   ` Ingo Schwarze
2011-10-13  9:55     ` Ulrich Spörlein
2011-10-15 15:02       ` Ingo Schwarze
2011-10-15 18:28         ` Joerg Sonnenberger
2011-10-16 10:35           ` Ingo Schwarze [this message]
2011-10-16 11:01             ` Kristaps Dzonsons

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111016103504.GB27850@iris.usta.de \
    --to=schwarze@usta.de \
    --cc=tech@mdocml.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).