repo: Add checksum to error message opening unreadable object
This would have debugged trying to do a pull as non-root from a sysroot repository. See for example: https://github.com/ostreedev/ostree/issues/1562 Closes: #1564 Approved by: jlebon
This commit is contained in:
parent
11c12cc19a
commit
36ac768fb7
|
|
@ -3545,6 +3545,9 @@ _ostree_repo_load_file_bare (OstreeRepo *self,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *errprefix = glnx_strjoina ("Opening content object ", checksum);
|
||||||
|
GLNX_AUTO_PREFIX_ERROR (errprefix, error);
|
||||||
|
|
||||||
struct stat stbuf;
|
struct stat stbuf;
|
||||||
glnx_autofd int fd = -1;
|
glnx_autofd int fd = -1;
|
||||||
g_autofree char *ret_symlink = NULL;
|
g_autofree char *ret_symlink = NULL;
|
||||||
|
|
@ -3585,7 +3588,7 @@ _ostree_repo_load_file_bare (OstreeRepo *self,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(S_ISREG (stbuf.st_mode) || S_ISLNK (stbuf.st_mode)))
|
if (!(S_ISREG (stbuf.st_mode) || S_ISLNK (stbuf.st_mode)))
|
||||||
return glnx_throw (error, "Not a regular file or symlink: %s", loose_path_buf);
|
return glnx_throw (error, "Not a regular file or symlink");
|
||||||
|
|
||||||
/* In the non-bare-user case, gather symlink info if requested */
|
/* In the non-bare-user case, gather symlink info if requested */
|
||||||
if (self->mode != OSTREE_REPO_MODE_BARE_USER
|
if (self->mode != OSTREE_REPO_MODE_BARE_USER
|
||||||
|
|
|
||||||
|
|
@ -21,3 +21,21 @@ trap _tmpdir_cleanup EXIT
|
||||||
/usr/libexec/installed-tests/libostree/test-basic.sh
|
/usr/libexec/installed-tests/libostree/test-basic.sh
|
||||||
/usr/libexec/installed-tests/libostree/test-basic-c
|
/usr/libexec/installed-tests/libostree/test-basic-c
|
||||||
date
|
date
|
||||||
|
|
||||||
|
# Test error message when opening a non-world-readable object
|
||||||
|
# https://github.com/ostreedev/ostree/issues/1562
|
||||||
|
rm repo files -rf
|
||||||
|
chmod a+rx .
|
||||||
|
ostree --repo=repo init --mode=bare
|
||||||
|
mkdir files
|
||||||
|
touch files/unreadable
|
||||||
|
chmod 0 files/unreadable
|
||||||
|
ostree --repo=repo commit -b testbranch --tree=dir=files
|
||||||
|
# We should be able to read as root due to CAP_DAC_OVERRIDE
|
||||||
|
ostree --repo=repo cat testbranch /unreadable >/dev/null
|
||||||
|
if setpriv --reuid bin --regid bin --clear-groups ostree --repo=repo cat testbranch /unreadable 2>err.txt; then
|
||||||
|
fatal "Listed unreadable object as non-root"
|
||||||
|
fi
|
||||||
|
assert_file_has_content err.txt "Opening content object.*openat: Permission denied"
|
||||||
|
|
||||||
|
date
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue