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.
This commit is contained in:
Richard W.M. Jones
2009-07-01 16:36:13 +01:00
parent 896079e29b
commit fe27753ae5

View File

@@ -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;
}