svn commit: r352085 - stable/12/usr.sbin/makefs

Ed Maste emaste at FreeBSD.org
Mon Sep 9 17:44:15 UTC 2019


Author: emaste
Date: Mon Sep  9 17:44:14 2019
New Revision: 352085
URL: https://svnweb.freebsd.org/changeset/base/352085

Log:
  MFC r344555 (sobomax): makefs: Improve error handling
  
  Bail out if one of the files scheduled to go to the FS image we are
  making cannot be read (e.g. EPERM).  Previous behaviour of issuing a
  warning but still proceeeding and returning success was definitely not
  correct: masking out error condition as well as making a slighly
  inconsistent FS where attempt to access the file in question ends up in
  EBADF.  (More details in review D18584.)

Modified:
  stable/12/usr.sbin/makefs/ffs.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/usr.sbin/makefs/ffs.c
==============================================================================
--- stable/12/usr.sbin/makefs/ffs.c	Mon Sep  9 17:43:44 2019	(r352084)
+++ stable/12/usr.sbin/makefs/ffs.c	Mon Sep  9 17:44:14 2019	(r352085)
@@ -932,8 +932,7 @@ ffs_write_file(union dinode *din, uint32_t ino, void *
 	if (isfile) {
 		fbuf = emalloc(ffs_opts->bsize);
 		if ((ffd = open((char *)buf, O_RDONLY, 0444)) == -1) {
-			warn("Can't open `%s' for reading", (char *)buf);
-			goto leave_ffs_write_file;
+			err(EXIT_FAILURE, "Can't open `%s' for reading", (char *)buf);
 		}
 	} else {
 		p = buf;
@@ -987,8 +986,6 @@ ffs_write_file(union dinode *din, uint32_t ino, void *
   
  write_inode_and_leave:
 	ffs_write_inode(&in.i_din, in.i_number, fsopts);
-
- leave_ffs_write_file:
 	if (fbuf)
 		free(fbuf);
 	if (ffd != -1)


More information about the svn-src-all mailing list