summaryrefslogtreecommitdiff
path: root/ccan/tal/test/run-overflow.c
diff options
context:
space:
mode:
authorWilliam Casarin <jb55@jb55.com>2018-07-09 22:28:25 -0700
committerWilliam Casarin <jb55@jb55.com>2018-07-09 22:31:48 -0700
commit9593fc545950782ed75f12f53238b07885559b2b (patch)
tree9c7c2f7cbb427c54e9184cb61eedce737a6cbc6f /ccan/tal/test/run-overflow.c
parentbd8c223756d2f912526ecef53bae0cc8e0c63442 (diff)
remove ccan for now
Diffstat (limited to 'ccan/tal/test/run-overflow.c')
-rw-r--r--ccan/tal/test/run-overflow.c99
1 files changed, 0 insertions, 99 deletions
diff --git a/ccan/tal/test/run-overflow.c b/ccan/tal/test/run-overflow.c
deleted file mode 100644
index d1919c1..0000000
--- a/ccan/tal/test/run-overflow.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include <ccan/tal/tal.h>
-#include <ccan/tal/tal.c>
-#include <ccan/tap/tap.h>
-
-static int error_count;
-
-static void my_error(const char *msg UNNEEDED)
-{
- error_count++;
-}
-
-int main(void)
-{
- void *p;
- int *pi, *origpi;
- char *cp;
-
- plan_tests(30);
-
- tal_set_backend(NULL, NULL, NULL, my_error);
-
- p = tal_arr(NULL, int, (size_t)-1);
- ok1(!p);
- ok1(error_count == 1);
-
- p = tal_arr(NULL, char, (size_t)-2);
- ok1(!p);
- ok1(error_count == 2);
-
- /* Now try overflow cases for tal_dup. */
- error_count = 0;
- origpi = tal_arr(NULL, int, 100);
- ok1(origpi);
- ok1(error_count == 0);
- pi = tal_dup_arr(NULL, int, origpi, (size_t)-1, 0);
- ok1(!pi);
- ok1(error_count == 1);
- pi = tal_dup_arr(NULL, int, origpi, 0, (size_t)-1);
- ok1(!pi);
- ok1(error_count == 2);
-
- pi = tal_dup_arr(NULL, int, origpi, (size_t)-1UL / sizeof(int),
- (size_t)-1UL / sizeof(int));
- ok1(!pi);
- ok1(error_count == 3);
- /* This will still overflow when tal_hdr is added. */
- pi = tal_dup_arr(NULL, int, origpi, (size_t)-1UL / sizeof(int) / 2,
- (size_t)-1UL / sizeof(int) / 2);
- ok1(!pi);
- ok1(error_count == 4);
- ok1(tal_first(NULL) == origpi && !tal_next(origpi) && !tal_first(origpi));
- tal_free(origpi);
-
- /* Now, check that with taltk() we free old one on failure. */
- origpi = tal_arr(NULL, int, 100);
- error_count = 0;
- pi = tal_dup_arr(NULL, int, take(origpi), (size_t)-1, 0);
- ok1(!pi);
- ok1(error_count == 1);
-
- origpi = tal_arr(NULL, int, 100);
- error_count = 0;
- pi = tal_dup_arr(NULL, int, take(origpi), 0, (size_t)-1);
- ok1(!pi);
- ok1(error_count == 1);
- ok1(!tal_first(NULL));
-
- origpi = tal_arr(NULL, int, 100);
- error_count = 0;
- pi = tal_dup_arr(NULL, int, take(origpi), (size_t)-1UL / sizeof(int),
- (size_t)-1UL / sizeof(int));
- ok1(!pi);
- ok1(error_count == 1);
- ok1(!tal_first(NULL));
-
- origpi = tal_arr(NULL, int, 100);
- error_count = 0;
- /* This will still overflow when tal_hdr is added. */
- pi = tal_dup_arr(NULL, int, take(origpi), (size_t)-1UL / sizeof(int) / 2,
- (size_t)-1UL / sizeof(int) / 2);
- ok1(!pi);
- ok1(error_count == 1);
- ok1(!tal_first(NULL));
-
- /* Overflow on expand addition. */
- cp = tal_arr(p, char, 100);
- ok1(!tal_expand(&cp, NULL, (size_t)-99UL));
- ok1(error_count == 2);
- tal_free(cp);
-
- /* Overflow when multiplied by size */
- origpi = tal_arr(NULL, int, 100);
- ok1(!tal_expand(&origpi, NULL, (size_t)-1UL / sizeof(int)));
- ok1(error_count == 3);
- tal_free(origpi);
-
- tal_cleanup();
- return exit_status();
-}