From 307e2569535d5732e5383f001c09c641a335467b Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 29 Oct 2005 10:33:02 +0000 Subject: [PATCH] added some stack checks git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2209 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/src/testsuite/hashcalc.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/util-vserver/src/testsuite/hashcalc.c b/util-vserver/src/testsuite/hashcalc.c index 1f74df0..2d83a51 100644 --- a/util-vserver/src/testsuite/hashcalc.c +++ b/util-vserver/src/testsuite/hashcalc.c @@ -31,8 +31,20 @@ 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]); @@ -47,9 +59,13 @@ int main(int UNUSED 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); - Vwrite(1, d_path, strlen(d_path)); + Vwrite(1, d_path.d, strlen(d_path.d)); Vwrite(1, "\n", 1); hashFunctionContextFree(&global_info.hash_context); -- 1.8.1.5