From fe27753ae5925cbe50042e47115364a57aadbbd7 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 1 Jul 2009 16:36:13 +0100 Subject: [PATCH] Fix error handling of external sfdisk command. Should use 'pclose' instead of 'fclose' (although fclose happens to work because of glibc internals). The result of pclose is the exit status of the command, so we need to test this is != 0. --- daemon/sfdisk.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/daemon/sfdisk.c b/daemon/sfdisk.c index 95f04af..6ff2736 100644 --- a/daemon/sfdisk.c +++ b/daemon/sfdisk.c @@ -63,14 +63,13 @@ sfdisk (char *device, int n, int cyls, int heads, int sectors, for (i = 0; lines[i] != NULL; ++i) { if (fprintf (fp, "%s\n", lines[i]) < 0) { reply_with_perror (buf); - fclose (fp); + pclose (fp); return -1; } } - if (fclose (fp) == EOF) { - reply_with_perror (buf); - fclose (fp); + if (pclose (fp) != 0) { + reply_with_error ("%s: external command failed", buf); return -1; } -- 1.8.3.1