pseudo: Fix statx function usage

There is magic in the posts where specific variable names have specific
magic. For that magic to work, "path" needs to be used not "pathname" as
is currently there. Fix this, which fixes path issues on systems using
statx (Ubuntu 20.04 in particular).

(From OE-Core rev: 48f464f84e90354aa57ba4b9f10e01d3bd39403e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9ae80aee98a7bb59c83ac9ebf9d317302507cec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-10-07 17:16:15 +01:00
parent 18b5662c22
commit 6821ab3485
2 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
There is magic in the posts where specific variable names have specific
magic. For that magic to work, "path" needs to be used not "pathname" as
is currently there. Fix this, which fixes path issues on systems using
statx (Ubuntu 20.04 in particular).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream-Status: Pending
Index: git/ports/linux/statx/guts/statx.c
===================================================================
--- git.orig/ports/linux/statx/guts/statx.c
+++ git/ports/linux/statx/guts/statx.c
@@ -5,14 +5,14 @@
* SPDX-License-Identifier: LGPL-2.1-only
*
* int
- * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) {
+ * statx(int dirfd, const char *path, int flags, unsigned int mask, struct statx *statxbuf) {
* int rc = -1;
*/
pseudo_msg_t *msg;
PSEUDO_STATBUF buf;
int save_errno;
- rc = real_statx(dirfd, pathname, flags, mask, statxbuf);
+ rc = real_statx(dirfd, path, flags, mask, statxbuf);
save_errno = errno;
if (rc == -1) {
return rc;
@@ -25,16 +25,16 @@
buf.st_mode = statxbuf->stx_mode;
buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor);
buf.st_nlink = statxbuf->stx_nlink;
- msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf);
+ msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, path, &buf);
if (msg && msg->result == RESULT_SUCCEED) {
- pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
+ pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", path, flags, rc, statxbuf->stx_uid);
statxbuf->stx_uid = msg->uid;
statxbuf->stx_gid = msg->gid;
statxbuf->stx_mode = msg->mode;
statxbuf->stx_rdev_major = major(msg->rdev);
statxbuf->stx_rdev_minor = minor(msg->rdev);
} else {
- pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
+ pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", path, flags, rc, statxbuf->stx_uid);
}
errno = save_errno;
/* return rc;
Index: git/ports/linux/statx/wrapfuncs.in
===================================================================
--- git.orig/ports/linux/statx/wrapfuncs.in
+++ git/ports/linux/statx/wrapfuncs.in
@@ -1 +1 @@
-int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf);
+int statx(int dirfd, const char *path, int flags, unsigned int mask, struct statx *statxbuf);

View File

@@ -9,6 +9,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \
file://xattr_fix.patch \
file://mayunlink.patch \
file://pathfix.patch \
file://statxfix.patch \
file://fallback-passwd \
file://fallback-group \
"