svn commit: r344291 - in stable/11/stand: arm/loader libsa

Kyle Evans kevans at FreeBSD.org
Tue Feb 19 18:50:22 UTC 2019


Author: kevans
Date: Tue Feb 19 18:50:20 2019
New Revision: 344291
URL: https://svnweb.freebsd.org/changeset/base/344291

Log:
  MFC r335125-r335127, r335148, r335224
  
  r335125:
  libsa: cstyle cleanup for open/close/read/write sources
  
  r335126:
  libsa: f_rabuf could be NULL
  
  It is possible that we will not get RA buffer from open(), therefore
  we must validate RA.
  
  r335127:
  libsa: remobe unneeded check before free()
  
  free() is checking for NULL, remove duplicate check.
  
  r335148:
  libsa: open() should use NULL instead of typecasted 0
  
  r335224:
  Remove empty directory

Deleted:
  stable/11/stand/arm/loader/
Modified:
  stable/11/stand/libsa/close.c
  stable/11/stand/libsa/open.c
  stable/11/stand/libsa/read.c
  stable/11/stand/libsa/write.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/stand/libsa/close.c
==============================================================================
--- stable/11/stand/libsa/close.c	Tue Feb 19 18:48:17 2019	(r344290)
+++ stable/11/stand/libsa/close.c	Tue Feb 19 18:50:20 2019	(r344291)
@@ -32,30 +32,30 @@
  * SUCH DAMAGE.
  *
  *	@(#)close.c	8.1 (Berkeley) 6/11/93
- *  
  *
+ *
  * Copyright (c) 1989, 1990, 1991 Carnegie Mellon University
  * All Rights Reserved.
  *
  * Author: Alessandro Forin
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
@@ -68,31 +68,30 @@ __FBSDID("$FreeBSD$");
 int
 close(int fd)
 {
-    struct open_file	*f = &files[fd];
-    int			err1 = 0, err2 = 0;
+	struct open_file *f = &files[fd];
+	int err1 = 0, err2 = 0;
 
-    if ((unsigned)fd >= SOPEN_MAX || f->f_flags == 0) {
-	errno = EBADF;
-	return (-1);
-    }
-    if (f->f_rabuf != NULL) {
+	if ((unsigned)fd >= SOPEN_MAX || f->f_flags == 0) {
+		errno = EBADF;
+		return (-1);
+	}
 	free(f->f_rabuf);
 	f->f_rabuf = NULL;
-    }
-    if (!(f->f_flags & F_RAW) && f->f_ops)
-	err1 = (f->f_ops->fo_close)(f);
-    if (!(f->f_flags & F_NODEV) && f->f_dev)
-	err2 = (f->f_dev->dv_close)(f);
-    if (f->f_devdata != NULL)
-	devclose(f);
-    f->f_flags = 0;
-    if (err1) {
-	errno = err1;
-	return (-1);
-    }
-    if (err2) {
-	errno = err2;
-	return (-1);
-    }
-    return (0);
+
+	if (!(f->f_flags & F_RAW) && f->f_ops)
+		err1 = (f->f_ops->fo_close)(f);
+	if (!(f->f_flags & F_NODEV) && f->f_dev)
+		err2 = (f->f_dev->dv_close)(f);
+	if (f->f_devdata != NULL)
+		devclose(f);
+	f->f_flags = 0;
+	if (err1) {
+		errno = err1;
+		return (-1);
+	}
+	if (err2) {
+		errno = err2;
+		return (-1);
+	}
+	return (0);
 }

Modified: stable/11/stand/libsa/open.c
==============================================================================
--- stable/11/stand/libsa/open.c	Tue Feb 19 18:48:17 2019	(r344290)
+++ stable/11/stand/libsa/open.c	Tue Feb 19 18:50:20 2019	(r344291)
@@ -32,30 +32,30 @@
  * SUCH DAMAGE.
  *
  *	@(#)open.c	8.1 (Berkeley) 6/11/93
- *  
  *
+ *
  * Copyright (c) 1989, 1990, 1991 Carnegie Mellon University
  * All Rights Reserved.
  *
  * Author: Alessandro Forin
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
@@ -70,89 +70,89 @@ struct fs_ops *exclusive_file_system;
 struct open_file files[SOPEN_MAX];
 
 static int
-o_gethandle(void) 
+o_gethandle(void)
 {
-    int		fd;
-    
-    for (fd = 0; fd < SOPEN_MAX; fd++)
-	if (files[fd].f_flags == 0)
-	    return(fd);
-    return(-1);
+	int fd;
+
+	for (fd = 0; fd < SOPEN_MAX; fd++)
+		if (files[fd].f_flags == 0)
+			return (fd);
+	return (-1);
 }
 
 static void
 o_rainit(struct open_file *f)
 {
-    f->f_rabuf = malloc(SOPEN_RASIZE);
-    f->f_ralen = 0;
-    f->f_raoffset = 0;
+	f->f_rabuf = malloc(SOPEN_RASIZE);
+	f->f_ralen = 0;
+	f->f_raoffset = 0;
 }
 
 int
 open(const char *fname, int mode)
 {
-    struct fs_ops	*fs;
-    struct open_file	*f;
-    int			fd, i, error, besterror;
-    const char		*file;
+	struct fs_ops *fs;
+	struct open_file *f;
+	int fd, i, error, besterror;
+	const char *file;
 
-    if ((fd = o_gethandle()) == -1) {
-	errno = EMFILE;
-	return(-1);
-    }
+	if ((fd = o_gethandle()) == -1) {
+		errno = EMFILE;
+		return (-1);
+	}
 
-    f = &files[fd];
-    f->f_flags = mode + 1;
-    f->f_dev = (struct devsw *)0;
-    f->f_ops = (struct fs_ops *)0;
-    f->f_offset = 0;
-    f->f_devdata = NULL;
-    file = (char *)0;
+	f = &files[fd];
+	f->f_flags = mode + 1;
+	f->f_dev = NULL;
+	f->f_ops = NULL;
+	f->f_offset = 0;
+	f->f_devdata = NULL;
+	file = NULL;
 
-    if (exclusive_file_system != NULL) {
-	fs = exclusive_file_system;
-	error = (fs->fo_open)(fname, f);
-	if (error == 0)
-	    goto ok;
-	goto err;
-    }
+	if (exclusive_file_system != NULL) {
+		fs = exclusive_file_system;
+		error = (fs->fo_open)(fname, f);
+		if (error == 0)
+			goto ok;
+		goto err;
+	}
 
-    error = devopen(f, fname, &file);
-    if (error ||
-	(((f->f_flags & F_NODEV) == 0) && f->f_dev == (struct devsw *)0))
-	goto err;
+	error = devopen(f, fname, &file);
+	if (error ||
+	    (((f->f_flags & F_NODEV) == 0) && f->f_dev == NULL))
+		goto err;
 
-    /* see if we opened a raw device; otherwise, 'file' is the file name. */
-    if (file == (char *)0 || *file == '\0') {
-	f->f_flags |= F_RAW;
-	f->f_rabuf = NULL;
-	return (fd);
-    }
+	/* see if we opened a raw device; otherwise, 'file' is the file name. */
+	if (file == NULL || *file == '\0') {
+		f->f_flags |= F_RAW;
+		f->f_rabuf = NULL;
+		return (fd);
+	}
 
-    /* pass file name to the different filesystem open routines */
-    besterror = ENOENT;
-    for (i = 0; file_system[i] != NULL; i++) {
-	fs = file_system[i];
-	error = (fs->fo_open)(file, f);
-	if (error == 0)
-	    goto ok;
-	if (error != EINVAL)
-	    besterror = error;
-    }
-    error = besterror;
+	/* pass file name to the different filesystem open routines */
+	besterror = ENOENT;
+	for (i = 0; file_system[i] != NULL; i++) {
+		fs = file_system[i];
+		error = (fs->fo_open)(file, f);
+		if (error == 0)
+			goto ok;
+		if (error != EINVAL)
+			besterror = error;
+	}
+	error = besterror;
 
-    if ((f->f_flags & F_NODEV) == 0 && f->f_dev != NULL)
-	f->f_dev->dv_close(f);
-    if (error)
-	devclose(f);
+	if ((f->f_flags & F_NODEV) == 0 && f->f_dev != NULL)
+		f->f_dev->dv_close(f);
+	if (error)
+		devclose(f);
 
- err:
-    f->f_flags = 0;
-    errno = error;
-    return (-1);
+err:
+	f->f_flags = 0;
+	errno = error;
+	return (-1);
 
- ok:
-    f->f_ops = fs;
-    o_rainit(f);
-    return (fd);
+ok:
+	f->f_ops = fs;
+	o_rainit(f);
+	return (fd);
 }

Modified: stable/11/stand/libsa/read.c
==============================================================================
--- stable/11/stand/libsa/read.c	Tue Feb 19 18:48:17 2019	(r344290)
+++ stable/11/stand/libsa/read.c	Tue Feb 19 18:50:20 2019	(r344291)
@@ -32,30 +32,30 @@
  * SUCH DAMAGE.
  *
  *	@(#)read.c	8.1 (Berkeley) 6/11/93
- *  
  *
+ *
  * Copyright (c) 1989, 1990, 1991 Carnegie Mellon University
  * All Rights Reserved.
  *
  * Author: Alessandro Forin
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
@@ -69,59 +69,65 @@ __FBSDID("$FreeBSD$");
 ssize_t
 read(int fd, void *dest, size_t bcount)
 {
-    struct open_file	*f = &files[fd];
-    size_t		resid;
+	struct open_file *f = &files[fd];
+	size_t resid;
 
-    if ((unsigned)fd >= SOPEN_MAX || !(f->f_flags & F_READ)) {
-	errno = EBADF;
-	return (-1);
-    }
-    if (f->f_flags & F_RAW) {
-	twiddle(4);
-	errno = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
-				btodb(f->f_offset), bcount, dest, &resid);
-	if (errno)
-	    return (-1);
-	f->f_offset += resid;
-	return (resid);
-    } 
-
-    /*
-     * Optimise reads from regular files using a readahead buffer.
-     * If the request can't be satisfied from the current buffer contents,
-     * check to see if it should be bypassed, or refill the buffer and complete
-     * the request.
-     */
-    resid = bcount;
-    for (;;) {
-	size_t	ccount, cresid;
-	/* how much can we supply? */
-	ccount = imin(f->f_ralen, resid);
-	if (ccount > 0) {
-	    bcopy(f->f_rabuf + f->f_raoffset, dest, ccount);
-	    f->f_raoffset += ccount;
-	    f->f_ralen -= ccount;
-	    resid -= ccount;
-	    if (resid == 0)
-		return(bcount);
-	    dest = (char *)dest + ccount;
+	if ((unsigned)fd >= SOPEN_MAX || !(f->f_flags & F_READ)) {
+		errno = EBADF;
+		return (-1);
 	}
-
-	/* will filling the readahead buffer again not help? */
-	if (resid >= SOPEN_RASIZE) {
-	    /* bypass the rest of the request and leave the buffer empty */
-	    if ((errno = (f->f_ops->fo_read)(f, dest, resid, &cresid)))
-		    return (-1);
-	    return(bcount - cresid);
+	if (f->f_flags & F_RAW) {
+		twiddle(4);
+		errno = (f->f_dev->dv_strategy)(f->f_devdata, F_READ,
+		    btodb(f->f_offset), bcount, dest, &resid);
+		if (errno)
+			return (-1);
+		f->f_offset += resid;
+		return (resid);
 	}
 
-	/* fetch more data */
-	if ((errno = (f->f_ops->fo_read)(f, f->f_rabuf, SOPEN_RASIZE, &cresid)))
-	    return (-1);
-	f->f_raoffset = 0;
-	f->f_ralen = SOPEN_RASIZE - cresid;
-	/* no more data, return what we had */
-	if (f->f_ralen == 0)
-	    return(bcount - resid);
-    }	
+	/*
+	 * Optimise reads from regular files using a readahead buffer.
+	 * If the request can't be satisfied from the current buffer contents,
+	 * check to see if it should be bypassed, or refill the buffer and
+	 * complete the request.
+	 */
+	resid = bcount;
+	for (;;) {
+		size_t	ccount, cresid;
+		/* how much can we supply? */
+		ccount = imin(f->f_ralen, resid);
+		if (ccount > 0) {
+			bcopy(f->f_rabuf + f->f_raoffset, dest, ccount);
+			f->f_raoffset += ccount;
+			f->f_ralen -= ccount;
+			resid -= ccount;
+			if (resid == 0)
+				return (bcount);
+			dest = (char *)dest + ccount;
+		}
+
+		/* will filling the readahead buffer again not help? */
+		if (f->f_rabuf == NULL || resid >= SOPEN_RASIZE) {
+			/*
+			 * bypass the rest of the request and leave the
+			 * buffer empty
+			 */
+			errno = (f->f_ops->fo_read)(f, dest, resid, &cresid);
+			if (errno != 0)
+				return (-1);
+			return (bcount - cresid);
+		}
+
+		/* fetch more data */
+		errno = (f->f_ops->fo_read)(f, f->f_rabuf, SOPEN_RASIZE,
+		    &cresid);
+		if (errno != 0)
+			return (-1);
+		f->f_raoffset = 0;
+		f->f_ralen = SOPEN_RASIZE - cresid;
+		/* no more data, return what we had */
+		if (f->f_ralen == 0)
+			return (bcount - resid);
+	}
 }

Modified: stable/11/stand/libsa/write.c
==============================================================================
--- stable/11/stand/libsa/write.c	Tue Feb 19 18:48:17 2019	(r344290)
+++ stable/11/stand/libsa/write.c	Tue Feb 19 18:50:20 2019	(r344291)
@@ -32,30 +32,30 @@
  * SUCH DAMAGE.
  *
  *	@(#)write.c	8.1 (Berkeley) 6/11/93
- *  
  *
+ *
  * Copyright (c) 1989, 1990, 1991 Carnegie Mellon University
  * All Rights Reserved.
  *
  * Author: Alessandro Forin
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
@@ -67,10 +67,7 @@ __FBSDID("$FreeBSD$");
 #include "stand.h"
 
 ssize_t
-write(fd, dest, bcount)
-	int fd;
-	const void *dest;
-	size_t bcount;
+write(int fd, const void *dest, size_t bcount)
 {
 	struct open_file *f = &files[fd];
 	size_t resid;
@@ -82,8 +79,8 @@ write(fd, dest, bcount)
 	if (f->f_flags & F_RAW) {
 		twiddle(4);
 		errno = (f->f_dev->dv_strategy)(f->f_devdata, F_WRITE,
-			btodb(f->f_offset), bcount, __DECONST(void *, dest),
-			&resid);
+		    btodb(f->f_offset), bcount, __DECONST(void *, dest),
+		    &resid);
 		if (errno)
 			return (-1);
 		f->f_offset += resid;


More information about the svn-src-all mailing list