summaryrefslogtreecommitdiff
path: root/file
diff options
context:
space:
mode:
authorPaul Nasrat <pnasrat@redhat.com>2007-04-16 13:07:52 +0100
committerPaul Nasrat <pnasrat@redhat.com>2007-04-16 13:07:52 +0100
commit026b82f53b8f19e2b3af1f4366de0de2554d2173 (patch)
tree5d9008ef96d23859ff26577d2f0cfd9cd48ad69d /file
parentcc4d429e932cfc46fd75f09378858c4ba0fb8ab9 (diff)
downloadlibrpm-tizen-026b82f53b8f19e2b3af1f4366de0de2554d2173.tar.gz
librpm-tizen-026b82f53b8f19e2b3af1f4366de0de2554d2173.tar.bz2
librpm-tizen-026b82f53b8f19e2b3af1f4366de0de2554d2173.zip
Fix uncompress waitpid logic to shut up the compiler [#160434]
Patch from OpenSuSE
Diffstat (limited to 'file')
-rw-r--r--file/src/compress.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/file/src/compress.c b/file/src/compress.c
index 18af9a790..af69f3c50 100644
--- a/file/src/compress.c
+++ b/file/src/compress.c
@@ -341,6 +341,7 @@ uncompressbuf(struct magic_set *ms, int fd, size_t method,
file_error(ms, errno, "cannot create pipe");
return 0;
}
+ pid2 = (pid_t)-1;
switch ((pid1=fork())) {
case 0: /* child */
(void) close(0);
@@ -382,7 +383,7 @@ uncompressbuf(struct magic_set *ms, int fd, size_t method,
* fork again, to avoid blocking because both
* pipes filled
*/
- switch (fork()) {
+ switch ((pid2 = fork())) {
case 0: /* child */
(void)close(fdout[0]);
if (swrite(fdin[1], old, n) != n) {
@@ -439,7 +440,8 @@ err:
(void) close(fdin[1]);
(void) close(fdout[0]);
waitpid(pid1, NULL, 0);
- waitpid(pid2, NULL, 0);
+ if (pid2 != (pid_t)-1)
+ waitpid(pid2, NULL, 0);
return n;
}
/*@notreached@*/