~alpine/devel

apk-tools: archive: enable FIFO extraction v1 PROPOSED

Jesse Young: 2
 apk-tools: archive: enable FIFO extraction
 apk-tools: archive: enable FIFO extraction

 2 files changed, 9 insertions(+), 4 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.alpinelinux.org/~alpine/devel/patches/1165/mbox | git am -3
Learn more about email & git

[alpine-devel] [PATCH] apk-tools: archive: enable FIFO extraction Export this patch

---
 src/archive.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/archive.c b/src/archive.c
index 9196cb2..1fc3e57 100644
--- a/src/archive.c
+++ b/src/archive.c
@@ -300,6 +300,9 @@ int apk_tar_parse(struct apk_istream *is, apk_archive_entry_parser parser,
		case '5': /* directory */
			entry.mode |= S_IFDIR;
			break;
		case '6': /* fifo */
			entry.mode |= S_IFIFO;
			break;
		case 'g': /* global pax header */
			break;
		case 'x': /* file specific pax header */
@@ -431,6 +434,7 @@ int apk_archive_entry_extract(int atfd, const struct apk_file_info *ae,
	struct apk_xattr *xattr;
	char *fn = ae->name;
	int fd, r = -1, atflags = 0, ret = 0;
	mode_t nodmask = S_IFBLK | S_IFCHR | S_IFIFO | 07777;

	if (suffix != NULL) {
		fn = alloca(PATH_MAX);
@@ -477,11 +481,10 @@ int apk_archive_entry_extract(int atfd, const struct apk_file_info *ae,
		if (r < 0) ret = -errno;
		atflags |= AT_SYMLINK_NOFOLLOW;
		break;
	case S_IFSOCK:
	case S_IFBLK:
	case S_IFCHR:
	case S_IFIFO:
		r = mknodat(atfd, fn, ae->mode & 07777, ae->device);
		r = mknodat(atfd, fn, ae->mode & nodmask, ae->device);
		if (r < 0) ret = -errno;
		break;
	}
-- 
2.18.0



---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---
Hi,

On Mon, 13 Aug 2018 00:57:52 -0500
Jesse Young <jlyo@jlyo.org> wrote:

[alpine-devel] [PATCH v2] apk-tools: archive: enable FIFO extraction Export this patch

---
 src/archive.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/archive.c b/src/archive.c
index 9196cb2..bc36ce7 100644
--- a/src/archive.c
+++ b/src/archive.c
@@ -300,6 +300,9 @@ int apk_tar_parse(struct apk_istream *is, apk_archive_entry_parser parser,
		case '5': /* directory */
			entry.mode |= S_IFDIR;
			break;
		case '6': /* fifo */
			entry.mode |= S_IFIFO;
			break;
		case 'g': /* global pax header */
			break;
		case 'x': /* file specific pax header */
@@ -477,11 +480,10 @@ int apk_archive_entry_extract(int atfd, const struct apk_file_info *ae,
		if (r < 0) ret = -errno;
		atflags |= AT_SYMLINK_NOFOLLOW;
		break;
	case S_IFSOCK:
	case S_IFBLK:
	case S_IFCHR:
	case S_IFIFO:
		r = mknodat(atfd, fn, ae->mode & 07777, ae->device);
		r = mknodat(atfd, fn, ae->mode, ae->device);
		if (r < 0) ret = -errno;
		break;
	}
-- 
2.18.0



---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---