X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fchecksum.c;h=ca5abe76ef89bad22282e5657a99492cde92a847;hb=8bc6e9d6a89672bbe1e7469774abe889354deb67;hp=7967f0c0c6b602043ce465e3485439d67efff5c8;hpb=9ff99418361cd1b56b00e4ffef52444021e60c72;p=libguestfs.git diff --git a/daemon/checksum.c b/daemon/checksum.c index 7967f0c..ca5abe7 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 @@ -13,7 +13,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -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. */ }