9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: cinap_lenrek@gmx.de
To: 9fans@9fans.net
Subject: Re: [9fans] dns
Date: Wed, 22 Aug 2012 12:32:42 +0200	[thread overview]
Message-ID: <77e5af21864417917c398575fb84095d@rei2.9hal> (raw)
In-Reply-To: <7923a269495e9abf153363f63d452d3c@ladd.quanstro.net>

wait, Maxdest is a count, see:

dest = emalloc(Maxdest * sizeof *dest);	/* dest can't be on stack */

code like:

Dest	*curdest;	/* pointer to next to fill */

p = dp->dest;
...
if (qp->ndest > qp->curdest - p) {

and

for(p = qp->dest; p < qp->curdest; p++)

indicates that dp->curdest is an end pointer. so it should be perfectly valid
for it to point at &dp->dest[Maxdest].

the check at the top of serveraddrs() should really be:

if(nd >= Maxdest)		/* dest array is full? */
	return Maxdest;

serveraddr() really returns a count. which is the same as an
end pointer index.

the result check of that serveraddr() call should really be:

		if (j < 0 || j > Maxdest) {
			dnslog("serveraddrs() result %d out of range", j);
			abort();
		}
		qp->curdest = &qp->dest[j];

and the destck(dp->curdest); should be removed.

--- a/sys/src/cmd/ndb/dnresolve.c	Wed Aug 22 00:11:42 2012 +0200
+++ b/sys/src/cmd/ndb/dnresolve.c	Wed Aug 22 12:28:34 2012 +0200
@@ -832,7 +832,7 @@
 	Dest *cur;

 	if(nd >= Maxdest)		/* dest array is full? */
-		return Maxdest - 1;
+		return Maxdest;

 	/*
 	 *  look for a server whose address we already know.
@@ -1080,13 +1080,12 @@
 	 */
 	if (qp->ndest > qp->curdest - p) {
 		j = serveraddrs(qp, qp->curdest - p, depth);
-		if (j < 0 || j >= Maxdest) {
+		if (j < 0 || j > Maxdest) {
 			dnslog("serveraddrs() result %d out of range", j);
 			abort();
 		}
 		qp->curdest = &qp->dest[j];
 	}
-	destck(qp->curdest);

 	/* no servers, punt */
 	if (qp->ndest == 0)

--
cinap



  parent reply	other threads:[~2012-08-22 10:32 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-21  1:51 Jeff Sickel
2012-08-21  1:59 ` erik quanstrom
2012-08-21  4:23 ` arisawa
2012-08-21  5:08   ` Jeff Sickel
2012-08-21  8:42     ` Kenji Arisawa
2012-08-21 11:27       ` cinap_lenrek
2012-08-21 12:18         ` Lucio De Re
2012-08-21 12:37         ` arisawa
2012-08-21 18:32         ` erik quanstrom
2012-08-21 20:05           ` Charles Forsyth
     [not found]           ` <CAOw7k5hALBex13jJUbscVt4th-Z9urpmAP0eOBi7b1HuBQESrw@mail.gmail.c>
2012-08-21 20:41             ` erik quanstrom
2012-08-21 22:44           ` cinap_lenrek
2012-08-22 10:32           ` cinap_lenrek [this message]
2012-08-22 12:09             ` Kenji Arisawa
2012-08-22 12:35               ` cinap_lenrek
2012-08-22 13:05                 ` erik quanstrom
2012-08-22 13:08                   ` erik quanstrom
2012-08-22 13:11                   ` Charles Forsyth
     [not found]                   ` <CAOw7k5gGhL-=E=V1C9ffQP7qMyUVMhtrgpzLMidnCsHFGDzHwA@mail.gmail.c>
2012-08-22 13:18                     ` erik quanstrom
2012-08-22 13:21                       ` Charles Forsyth
2012-08-22 13:31                       ` cinap_lenrek
2012-08-22 14:22                         ` erik quanstrom
2012-08-22 14:41                           ` Charles Forsyth
2012-08-22 14:47                           ` cinap_lenrek
2012-08-22 15:26                             ` erik quanstrom
2012-08-22 15:33                             ` erik quanstrom
2012-08-22 15:35                               ` erik quanstrom
     [not found]                             ` <CAOw7k5jOE0Bf13fXJ04dUF4vGniRTJ1LwEMV1Oqw=AFKg77boA@mail.gmail.com>
2012-08-22 16:05                               ` Charles Forsyth
2012-08-22 13:23                 ` Lucio De Re
2012-08-25  0:10         ` Kenji Arisawa
2012-08-25 10:54           ` cinap_lenrek
2012-08-25 12:37             ` Kenji Arisawa
2012-08-25 13:22               ` cinap_lenrek
2012-08-25 13:38                 ` cinap_lenrek
2012-08-25 13:41                 ` Charles Forsyth
2012-08-25 13:44                   ` cinap_lenrek
2012-08-27 22:44               ` arisawa
2012-08-28  1:45                 ` cinap_lenrek
2012-08-28  1:57                   ` erik quanstrom
2012-08-28  2:08                     ` cinap_lenrek
2012-08-28  4:03                       ` erik quanstrom
2012-09-08 17:37                         ` Skip Tavakkolian
2012-09-08 18:02                           ` cinap_lenrek
2012-09-08 18:18                           ` cinap_lenrek
2012-09-08 21:53                             ` Skip Tavakkolian
2012-09-08 22:27                               ` cinap_lenrek
2012-09-09  2:09                                 ` Charles Forsyth
2012-09-09  2:37                                   ` cinap_lenrek
2012-09-09  3:01                                     ` Charles Forsyth
     [not found]                                     ` <CAOw7k5jydN7wssxBEqTc6h9FtLErjkoyxyfuQZLgcBTZ-nRgiw@mail.gmail.c>
2012-09-09  4:26                                       ` erik quanstrom
2012-09-09  5:28                                         ` Skip Tavakkolian
2012-08-25 21:56           ` cinap_lenrek
2012-08-26 13:16             ` cinap_lenrek
2012-08-26 13:36               ` Charles Forsyth
2012-08-21  5:08 ` Benjamin Huntsman
  -- strict thread matches above, loose matches on Subject: below --
2017-04-01  1:28 [9fans] DNS cinap_lenrek
2017-04-01  3:40 ` Skip Tavakkolian
2017-04-01  9:46   ` Alexandru Gheorghe
2017-04-01 17:04     ` Steve Simon
2017-04-03  7:06       ` David Arroyo
2017-03-20  7:26 Skip Tavakkolian
2017-03-21 19:19 ` Skip Tavakkolian
2017-03-30 22:19   ` Steve Simon
2017-03-31  7:43   ` Peter Hull
2012-08-26 14:48 [9fans] dns cinap_lenrek
2007-08-15 19:26 erik quanstrom
2007-07-03 20:54 erik quanstrom
2007-07-04 20:51 ` geoff
2007-07-04 21:18   ` erik quanstrom
2007-07-04 21:52     ` geoff
2004-03-20  2:25 David Presotto

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=77e5af21864417917c398575fb84095d@rei2.9hal \
    --to=cinap_lenrek@gmx.de \
    --cc=9fans@9fans.net \
    /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).