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-stable-11
mailing list