X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fchecksum.c;h=0bd9623da3cf089e3b97d7ccb3178af59df124b1;hb=c38cb92ec478c4dca83e4d38963720f463d52314;hp=e12a8a8997f06c76a647f82281373e37fdfff36a;hpb=00fae9fe88ca83dfc3ee0b1b7d8e27e644f6e9c7;p=libguestfs.git diff --git a/daemon/checksum.c b/daemon/checksum.c index e12a8a8..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 @@ -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. */ }