X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fchecksum.c;h=0bd9623da3cf089e3b97d7ccb3178af59df124b1;hp=7967f0c0c6b602043ce465e3485439d67efff5c8;hb=7f16c346bbeba2f2fe3c31ccb85158178a284d84;hpb=9ff99418361cd1b56b00e4ffef52444021e60c72 diff --git a/daemon/checksum.c b/daemon/checksum.c index 7967f0c..0bd9623 100644 --- a/daemon/checksum.c +++ b/daemon/checksum.c @@ -1,5 +1,5 @@ /* libguestfs - the guestfsd daemon - * Copyright (C) 2009 Red Hat Inc. + * Copyright (C) 2009-2011 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -61,12 +61,17 @@ checksum (const char *csumtype, int fd) int len; program = program_of_csum (csumtype); - if (program == NULL) + if (program == NULL) { + close (fd); return NULL; + } + + pulse_mode_start (); flags = COMMAND_FLAG_CHROOT_COPY_FILE_TO_STDIN | fd; r = commandf (&out, &err, flags, program, NULL); if (r == -1) { + pulse_mode_cancel (); reply_with_error ("%s: %s", program, err); free (out); free (err); @@ -79,6 +84,8 @@ checksum (const char *csumtype, int fd) len = strcspn (out, " \t\n"); out[len] = '\0'; + pulse_mode_end (); + return out; /* Caller frees. */ }