X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Ftestsuite%2Fhashcalc.c;h=2d83a51d014dc5811330ff158858b54e713b852c;hb=faa778968d1a7dfeaebc9fe4b847e691dc62fd15;hp=6dbd4cd4337ca100a4e5dc4d78b96cfcb0d2f217;hpb=c39d27ba32c6241ddc5e773bb55813c06f0d6ea7;p=util-vserver.git diff --git a/util-vserver/src/testsuite/hashcalc.c b/util-vserver/src/testsuite/hashcalc.c index 6dbd4cd..2d83a51 100644 --- a/util-vserver/src/testsuite/hashcalc.c +++ b/util-vserver/src/testsuite/hashcalc.c @@ -25,12 +25,26 @@ # include "../vhashify.c" #undef main -int main(int argc, char *argv[]) +#include "lib_internal/coreassert.h" + +int main(int UNUSED argc, char *argv[]) { int fd = open(argv[1], O_NOFOLLOW|O_NONBLOCK|O_RDONLY|O_NOCTTY); struct stat st; - HashPath d_path; off_t size; + struct { + volatile unsigned int canary0; + volatile unsigned int canary1; + HashPath d; + volatile unsigned int canary2; + volatile unsigned int canary3; + } __attribute__((__packed__)) d_path; + + d_path.canary0 = 0x12345678; + d_path.canary1 = 0x21436587; + d_path.canary2 = 0x89abcdef; + d_path.canary3 = 0x98badcfe; + memset(d_path.d, 0x66, sizeof d_path.d); global_info.hash_conf.method = hashFunctionFind(argv[2]); @@ -45,10 +59,14 @@ int main(int argc, char *argv[]) memset(&st, 0, sizeof st); st.st_size = size; - assert(calculateHashFromFD(fd, &d_path, &st)); + assert(calculateHashFromFD(fd, d_path.d, &st)); + assert(d_path.canary0 == 0x12345678); + assert(d_path.canary1 == 0x21436587); + assert(d_path.canary2 == 0x89abcdef); + assert(d_path.canary3 == 0x98badcfe); - write(1, d_path, strlen(d_path)); - write(1, "\n", 1); + Vwrite(1, d_path.d, strlen(d_path.d)); + Vwrite(1, "\n", 1); hashFunctionContextFree(&global_info.hash_context);