aboutsummaryrefslogtreecommitdiff
path: root/lib/libufs
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2018-02-02 22:06:15 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2018-02-02 22:06:15 +0000
commit8a9493deb25827ff94bfc6fc9e759e9cad9955b6 (patch)
tree715a68c1b59d70f47020075312620cd2573cdc93 /lib/libufs
parent62042c979db43298b8e3d569cb9fd5bd7adc60ac (diff)
downloadsrc-8a9493deb25827ff94bfc6fc9e759e9cad9955b6.tar.gz
src-8a9493deb25827ff94bfc6fc9e759e9cad9955b6.zip
In the sbwrite(3) function, ensure that the file descriptor has been
upgraded to writable. Reported by: Kyle Evans <kevans@freebsd.org>
Notes
Notes: svn path=/head/; revision=328813
Diffstat (limited to 'lib/libufs')
-rw-r--r--lib/libufs/sblock.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libufs/sblock.c b/lib/libufs/sblock.c
index 5242a6db88db..29ff258b6ebf 100644
--- a/lib/libufs/sblock.c
+++ b/lib/libufs/sblock.c
@@ -96,9 +96,16 @@ int
sbwrite(struct uufsd *disk, int all)
{
struct fs *fs;
+ int rv;
ERROR(disk, NULL);
+ rv = ufs_disk_write(disk);
+ if (rv == -1) {
+ ERROR(disk, "failed to open disk for writing");
+ return (-1);
+ }
+
fs = &disk->d_fs;
if ((errno = sbput(disk->d_fd, fs, all ? fs->fs_ncg : 0)) != 0) {
switch (errno) {