Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Aug 2009 07:10:57 +0000 (UTC)
From:      Brian Somers <brian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r196577 - stable/7/usr.sbin/ppp
Message-ID:  <200908270710.n7R7Av56087747@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brian
Date: Thu Aug 27 07:10:57 2009
New Revision: 196577
URL: http://svn.freebsd.org/changeset/base/196577

Log:
  MFC: When realloc()ing device memory for transfer to another ppp process,
       don't continue to use the realloc()d pointer - it might have changed!
  
       Remove some stray diagnostics while I'm here.

Modified:
  stable/7/usr.sbin/ppp/   (props changed)
  stable/7/usr.sbin/ppp/ether.c
  stable/7/usr.sbin/ppp/netgraph.c
  stable/7/usr.sbin/ppp/tty.c

Modified: stable/7/usr.sbin/ppp/ether.c
==============================================================================
--- stable/7/usr.sbin/ppp/ether.c	Thu Aug 27 07:07:38 2009	(r196576)
+++ stable/7/usr.sbin/ppp/ether.c	Thu Aug 27 07:10:57 2009	(r196577)
@@ -193,17 +193,18 @@ static void
 ether_device2iov(struct device *d, struct iovec *iov, int *niov,
                  int maxiov __unused, int *auxfd, int *nauxfd)
 {
-  struct etherdevice *dev = device2ether(d);
+  struct etherdevice *dev;
   int sz = physical_MaxDeviceSize();
 
-  iov[*niov].iov_base = realloc(d, sz);
-  if (iov[*niov].iov_base == NULL) {
+  iov[*niov].iov_base = d = realloc(d, sz);
+  if (d == NULL) {
     log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz);
     AbortProgram(EX_OSERR);
   }
   iov[*niov].iov_len = sz;
   (*niov)++;
 
+  dev = device2ether(d);
   if (dev->cs >= 0) {
     *auxfd = dev->cs;
     (*nauxfd)++;

Modified: stable/7/usr.sbin/ppp/netgraph.c
==============================================================================
--- stable/7/usr.sbin/ppp/netgraph.c	Thu Aug 27 07:07:38 2009	(r196576)
+++ stable/7/usr.sbin/ppp/netgraph.c	Thu Aug 27 07:10:57 2009	(r196577)
@@ -235,7 +235,6 @@ ng_Read(struct physical *p, void *v, siz
 {
   char hook[NG_HOOKSIZ];
 
-log_Printf(LogDEBUG, "ng_Read\n");
   switch (p->dl->state) {
     case DATALINK_DIAL:
     case DATALINK_LOGIN:
@@ -282,17 +281,18 @@ static void
 ng_device2iov(struct device *d, struct iovec *iov, int *niov,
               int maxiov __unused, int *auxfd, int *nauxfd)
 {
-  struct ngdevice *dev = device2ng(d);
+  struct ngdevice *dev;
   int sz = physical_MaxDeviceSize();
 
-  iov[*niov].iov_base = realloc(d, sz);
-  if (iov[*niov].iov_base == NULL) {
+  iov[*niov].iov_base = d = realloc(d, sz);
+  if (d == NULL) {
     log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz);
     AbortProgram(EX_OSERR);
   }
   iov[*niov].iov_len = sz;
   (*niov)++;
 
+  dev = device2ng(d);
   *auxfd = dev->cs;
   (*nauxfd)++;
 }

Modified: stable/7/usr.sbin/ppp/tty.c
==============================================================================
--- stable/7/usr.sbin/ppp/tty.c	Thu Aug 27 07:07:38 2009	(r196576)
+++ stable/7/usr.sbin/ppp/tty.c	Thu Aug 27 07:10:57 2009	(r196577)
@@ -384,7 +384,6 @@ UnloadLineDiscipline(struct physical *p)
   struct ttydevice *dev = device2tty(p->handler);
 
   if (isngtty(dev)) {
-log_Printf(LogPHASE, "back to speed %d\n", dev->real.speed);
     if (!physical_SetSpeed(p, dev->real.speed))
       log_Printf(LogWARN, "Couldn't reset tty speed to %d\n", dev->real.speed);
     dev->real.speed = 0;
@@ -582,17 +581,19 @@ tty_device2iov(struct device *d, struct 
 #endif
                )
 {
-  struct ttydevice *dev = device2tty(d);
+  struct ttydevice *dev;
   int sz = physical_MaxDeviceSize();
 
-  iov[*niov].iov_base = realloc(d, sz);
-  if (iov[*niov].iov_base == NULL) {
+  iov[*niov].iov_base = d = realloc(d, sz);
+  if (d == NULL) {
     log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz);
     AbortProgram(EX_OSERR);
   }
   iov[*niov].iov_len = sz;
   (*niov)++;
 
+  dev = device2tty(d);
+
 #ifndef NONETGRAPH
   if (dev->cs >= 0) {
     *auxfd = dev->cs;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908270710.n7R7Av56087747>