January 26, 2021 3:44 PM, "Hiltjo Posthuma" <hil...@codemadness.org> wrote:

> On Sat, Jan 16, 2021 at 04:29:27PM +0100, Hiltjo Posthuma wrote:
> 
>> On Mon, Jan 11, 2021 at 07:50:55PM +0100, Hiltjo Posthuma wrote:
>> Hi,
>> 
>> The below patch pledges the iconv binary in the libiconv package. The tool is
>> useful for converting text-encoding of text data to UTF-8 for example.
>> 
>> It now uses pledge("stdio", NULL) if only using stdin/stdout. It uses
>> pledge("stdio rpath", NULL) when specifying files.
>> 
>> I've tested many command-line option combinations and haven't found missing
>> promises which cause an abort().
>> 
>> Patch:
>> 
>> From f3b6b4de0a010bd7e9725eeaceddb33a61953a72 Mon Sep 17 00:00:00 2001
>> From: Hiltjo Posthuma <hil...@codemadness.org>
>> Date: Mon, 11 Jan 2021 19:39:31 +0100
>> Subject: [PATCH] libiconv: pledge iconv(1) binary
>> 
>> ---
>> converters/libiconv/Makefile | 3 ++-
>> converters/libiconv/patches/patch-src_iconv_c | 22 +++++++++++++++++++
>> 2 files changed, 24 insertions(+), 1 deletion(-)
>> create mode 100644 converters/libiconv/patches/patch-src_iconv_c
>> 
>> diff --git a/converters/libiconv/Makefile b/converters/libiconv/Makefile
>> index 2ab58ea4519..5c8043270de 100644
>> --- a/converters/libiconv/Makefile
>> +++ b/converters/libiconv/Makefile
>> @@ -5,7 +5,7 @@ COMMENT= character set conversion library
>> DISTNAME= libiconv-1.16
>> CATEGORIES= converters devel
>> MASTER_SITES= ${MASTER_SITE_GNU:=libiconv/}
>> -REVISION= 0
>> +REVISION= 1
>> 
>> SHARED_LIBS= charset 1.1 \
>> iconv 7.0
>> @@ -17,6 +17,7 @@ MAINTAINER= Brad Smith <b...@comstyle.com>
>> # LGPLv2 and GPLv3
>> PERMIT_PACKAGE= Yes
>> 
>> +# uses pledge()
>> WANTLIB= c
>> 
>> SEPARATE_BUILD= Yes
>> diff --git a/converters/libiconv/patches/patch-src_iconv_c
>> b/converters/libiconv/patches/patch-src_iconv_c
>> new file mode 100644
>> index 00000000000..2f3eaac346d
>> --- /dev/null
>> +++ b/converters/libiconv/patches/patch-src_iconv_c
>> @@ -0,0 +1,22 @@
>> +--- src/iconv.c.orig Mon Jan 11 19:28:35 2021
>> ++++ src/iconv.c Mon Jan 11 19:31:36 2021
>> +@@ -19,6 +19,9 @@
>> + # define ICONV_CONST
>> + #endif
>> +
>> ++#include <err.h>
>> ++#include <unistd.h>
>> ++
>> + #include <limits.h>
>> + #include <stddef.h>
>> + #include <stdio.h>
>> +@@ -846,6 +849,9 @@
>> + struct iconv_hooks hooks;
>> + int i;
>> + int status;
>> ++
>> ++ if (pledge(i == argc ? "stdio" : "stdio rpath", NULL) == -1)

Wouldn't you use i uninitialised here?

>> ++ err(1, "pledge");
>> +
>> + set_program_name (argv[0]);
>> + #if HAVE_SETLOCALE
>> --
>> 2.30.0
>> 
>> Any thoughts/OKs for the above patch?
>> 
>> I use it to convert the text-encoding of some RSS/Atom feeds which are
>> non-UTF-8 to UTF-8.
>> 
>> With this patch it completes pledge(2)'ing my entire software bundle to 
>> handle
>> RSS/Atom feeds.
>> 
>> In a nutshell: ftp someurl | iconv -f encoding -t utf-8 | myprogram
> 
> Bump, any OKs or comments?
> 
> --
> Kind regards,
> Hiltjo

Reply via email to