X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fchecksum.c;h=ca5abe76ef89bad22282e5657a99492cde92a847;hp=e12a8a8997f06c76a647f82281373e37fdfff36a;hb=HEAD;hpb=00fae9fe88ca83dfc3ee0b1b7d8e27e644f6e9c7 diff --git a/daemon/checksum.c b/daemon/checksum.c index e12a8a8..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 @@ -25,7 +25,7 @@ #include #include -#include "../src/guestfs_protocol.h" +#include "guestfs_protocol.h" #include "daemon.h" #include "actions.h" @@ -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. */ }