23 lines
825 B
Diff
23 lines
825 B
Diff
|
--- ./rpmio/rpmio.c.orig 2012-08-30 16:47:57.000000000 +0000
|
||
|
+++ ./rpmio/rpmio.c 2012-08-30 16:54:01.000000000 +0000
|
||
|
@@ -1370,7 +1370,7 @@ static void cvtfmode (const char *m,
|
||
|
|
||
|
FD_t Fdopen(FD_t ofd, const char *fmode)
|
||
|
{
|
||
|
- char stdio[20], other[20], zstdio[20];
|
||
|
+ char stdio[20], other[20], zstdio[40];
|
||
|
const char *end = NULL;
|
||
|
FDIO_t iof = NULL;
|
||
|
FD_t fd = ofd;
|
||
|
@@ -1385,8 +1385,8 @@ fprintf(stderr, "*** Fdopen(%p,%s) %s\n"
|
||
|
if (stdio[0] == '\0')
|
||
|
return NULL;
|
||
|
zstdio[0] = '\0';
|
||
|
- strncat(zstdio, stdio, sizeof(zstdio) - strlen(zstdio));
|
||
|
- strncat(zstdio, other, sizeof(zstdio) - strlen(zstdio));
|
||
|
+ strncat(zstdio, stdio, sizeof(zstdio) - strlen(zstdio) - 1);
|
||
|
+ strncat(zstdio, other, sizeof(zstdio) - strlen(zstdio) - 1);
|
||
|
|
||
|
if (end == NULL && other[0] == '\0')
|
||
|
return fd;
|