Message ID | 20240305204834.101697-1-jaegeuk@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [f2fs-dev] f2fs-tools: deal with permission denial on non-root user | expand |
Reviewed-by: Daeho Jeong <daehojeong@google.com> On Tue, Mar 5, 2024 at 12:50 PM Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > This fixes some android build failures due to the missing permission when > checking the loop device. Until we get a better solution, let's ignore > the error with warnings. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > lib/libf2fs.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/lib/libf2fs.c b/lib/libf2fs.c > index d51e485361ee..1cfbf31a9c85 100644 > --- a/lib/libf2fs.c > +++ b/lib/libf2fs.c > @@ -854,9 +854,15 @@ int f2fs_dev_is_umounted(char *path) > > loop_fd = open(mnt->mnt_fsname, O_RDONLY); > if (loop_fd < 0) { > + /* non-root users have no permission */ > + if (errno == EPERM || errno == EACCES) { > + MSG(0, "Info: open %s failed errno:%d - be careful to overwrite a mounted loopback file.\n", > + mnt->mnt_fsname, errno); > + return 0; > + } > MSG(0, "Info: open %s failed errno:%d\n", > - mnt->mnt_fsname, errno); > - return -1; > + mnt->mnt_fsname, errno); > + return -errno; > } > > err = ioctl(loop_fd, LOOP_GET_STATUS64, &loopinfo); > @@ -864,7 +870,7 @@ int f2fs_dev_is_umounted(char *path) > if (err < 0) { > MSG(0, "\tError: ioctl LOOP_GET_STATUS64 failed errno:%d!\n", > errno); > - return -1; > + return -errno; > } > > if (st_buf.st_dev == loopinfo.lo_device && > -- > 2.44.0.278.ge034bb2e1d-goog > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
Reviewed-by: Huang Jianan <huangjianan@xiaomi.com> Thanks. On 2024/3/6 4:48, Jaegeuk Kim wrote: > This fixes some android build failures due to the missing permission when > checking the loop device. Until we get a better solution, let's ignore > the error with warnings. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > lib/libf2fs.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/lib/libf2fs.c b/lib/libf2fs.c > index d51e485361ee..1cfbf31a9c85 100644 > --- a/lib/libf2fs.c > +++ b/lib/libf2fs.c > @@ -854,9 +854,15 @@ int f2fs_dev_is_umounted(char *path) > > loop_fd = open(mnt->mnt_fsname, O_RDONLY); > if (loop_fd < 0) { > + /* non-root users have no permission */ > + if (errno == EPERM || errno == EACCES) { > + MSG(0, "Info: open %s failed errno:%d - be careful to overwrite a mounted loopback file.\n", > + mnt->mnt_fsname, errno); > + return 0; > + } > MSG(0, "Info: open %s failed errno:%d\n", > - mnt->mnt_fsname, errno); > - return -1; > + mnt->mnt_fsname, errno); > + return -errno; > } > > err = ioctl(loop_fd, LOOP_GET_STATUS64, &loopinfo); > @@ -864,7 +870,7 @@ int f2fs_dev_is_umounted(char *path) > if (err < 0) { > MSG(0, "\tError: ioctl LOOP_GET_STATUS64 failed errno:%d!\n", > errno); > - return -1; > + return -errno; > } > > if (st_buf.st_dev == loopinfo.lo_device && > -- > 2.44.0.278.ge034bb2e1d-goog > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
On 2024/3/6 4:48, Jaegeuk Kim wrote: > This fixes some android build failures due to the missing permission when > checking the loop device. Until we get a better solution, let's ignore > the error with warnings. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <chao@kernel.org> Thanks,
diff --git a/lib/libf2fs.c b/lib/libf2fs.c index d51e485361ee..1cfbf31a9c85 100644 --- a/lib/libf2fs.c +++ b/lib/libf2fs.c @@ -854,9 +854,15 @@ int f2fs_dev_is_umounted(char *path) loop_fd = open(mnt->mnt_fsname, O_RDONLY); if (loop_fd < 0) { + /* non-root users have no permission */ + if (errno == EPERM || errno == EACCES) { + MSG(0, "Info: open %s failed errno:%d - be careful to overwrite a mounted loopback file.\n", + mnt->mnt_fsname, errno); + return 0; + } MSG(0, "Info: open %s failed errno:%d\n", - mnt->mnt_fsname, errno); - return -1; + mnt->mnt_fsname, errno); + return -errno; } err = ioctl(loop_fd, LOOP_GET_STATUS64, &loopinfo); @@ -864,7 +870,7 @@ int f2fs_dev_is_umounted(char *path) if (err < 0) { MSG(0, "\tError: ioctl LOOP_GET_STATUS64 failed errno:%d!\n", errno); - return -1; + return -errno; } if (st_buf.st_dev == loopinfo.lo_device &&
This fixes some android build failures due to the missing permission when checking the loop device. Until we get a better solution, let's ignore the error with warnings. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- lib/libf2fs.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)