Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Sep 2012 11:54:33 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r240692 - head/sys/dev/amr
Message-ID:  <201209191154.q8JBsXCU086015@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Wed Sep 19 11:54:32 2012
New Revision: 240692
URL: http://svn.freebsd.org/changeset/base/240692

Log:
  As a followup to r234501, ensure that the native ioctl path always allocates
  a 4kb buffer if a request uses a buffer size of 0.  (The Linux ioctl path
  already did this.)
  
  PR:		kern/155658
  Submitted by:	Andreas Longwitz
  MFC after:	1 week

Modified:
  head/sys/dev/amr/amr.c

Modified: head/sys/dev/amr/amr.c
==============================================================================
--- head/sys/dev/amr/amr.c	Wed Sep 19 11:40:17 2012	(r240691)
+++ head/sys/dev/amr/amr.c	Wed Sep 19 11:54:32 2012	(r240692)
@@ -846,11 +846,8 @@ amr_ioctl(struct cdev *dev, u_long cmd, 
 
     /* handle inbound data buffer */
     real_length = amr_ioctl_buffer_length(au_length);
+    dp = malloc(real_length, M_AMR, M_WAITOK|M_ZERO);
     if (au_length != 0 && au_cmd[0] != 0x06) {
-	if ((dp = malloc(real_length, M_AMR, M_WAITOK|M_ZERO)) == NULL) {
-	    error = ENOMEM;
-	    goto out;
-	}
 	if ((error = copyin(au_buffer, dp, au_length)) != 0) {
 	    free(dp, M_AMR);
 	    return (error);
@@ -920,8 +917,7 @@ amr_ioctl(struct cdev *dev, u_long cmd, 
 	error = copyout(dp, au_buffer, au_length);
     }
     debug(2, "copyout %ld bytes from %p -> %p", au_length, dp, au_buffer);
-    if (dp != NULL)
-	debug(2, "%p status 0x%x", dp, ac->ac_status);
+    debug(2, "%p status 0x%x", dp, ac->ac_status);
     *au_statusp = ac->ac_status;
 
 out:



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