X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=rpmio-read-proc-files.patch;fp=rpmio-read-proc-files.patch;h=27118bfe912cd1becf223a545f8959e50d1c8c9c;hb=ac6a7800ef3a6bb01f82325463e4ba5221cbdedc;hp=0000000000000000000000000000000000000000;hpb=6fce50075952edfa510790ca6be81e6d3fb9e214;p=packages%2Frpm.git diff --git a/rpmio-read-proc-files.patch b/rpmio-read-proc-files.patch new file mode 100644 index 0000000..27118bf --- /dev/null +++ b/rpmio-read-proc-files.patch @@ -0,0 +1,25 @@ +--- rpm-4.16.0/rpmio/rpmio.c~ 2020-08-27 15:13:08.000000000 +0200 ++++ rpm-4.16.0/rpmio/rpmio.c 2020-11-08 21:31:26.311430982 +0100 +@@ -1709,6 +1709,22 @@ + } + b[blen] = '\0'; + } ++#if defined(__linux__) ++ /* XXX st->st_size = 0 for /proc files on linux, see stat(2). */ ++ /* XXX glibc mmap'd libio no workie for /proc files on linux?!? */ ++ else if (!strncmp(fn, "/proc/", sizeof("/proc/")-1)) { ++ blen = blenmax; ++ b = xmalloc(blen+1); ++ b[0] = '\0'; ++ ++ size = read(Fileno(fd), b, blen); ++ if (size < 0) { ++ rc = 1; ++ goto exit; ++ } ++ blen = size; ++ } ++#endif + + exit: + if (fd) (void) Fclose(fd);