aboutsummaryrefslogtreecommitdiff
path: root/have
diff options
context:
space:
mode:
authorOmar Polo <op@omarpolo.com>2021-01-21 15:37:02 +0000
committerOmar Polo <op@omarpolo.com>2021-01-21 15:37:02 +0000
commit5c342d059f884b73823e5a466902a3826b17e6c7 (patch)
tree82915c2da7cb8dc82823906b5373cfbaa675fdc6 /have
parentb2a6b6137186dd3fce21640150926a133a35c2c8 (diff)
more OpenBSD goodies
Diffstat (limited to 'have')
-rw-r--r--have/explicit_bzero.c10
-rw-r--r--have/recallocarray.c11
-rw-r--r--have/strtonum.c27
3 files changed, 48 insertions, 0 deletions
diff --git a/have/explicit_bzero.c b/have/explicit_bzero.c
new file mode 100644
index 0000000..9e8bd70
--- /dev/null
+++ b/have/explicit_bzero.c
@@ -0,0 +1,10 @@
+#include <string.h>
+
+int
+main(void)
+{
+ char buf[] = "hello world";
+
+ explicit_bzero(buf, sizeof(buf));
+ return strcmp(buf, "");
+}
diff --git a/have/recallocarray.c b/have/recallocarray.c
new file mode 100644
index 0000000..e0c60d7
--- /dev/null
+++ b/have/recallocarray.c
@@ -0,0 +1,11 @@
+#include <stdlib.h>
+
+int
+main(void)
+{
+ void *p;
+
+ if ((p = calloc(2, 2)) == NULL)
+ return 1;
+ return !recallocarray(p, 2, 3, 2);
+}
diff --git a/have/strtonum.c b/have/strtonum.c
new file mode 100644
index 0000000..6e2aad2
--- /dev/null
+++ b/have/strtonum.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2021 Omar Polo <op@omarpolo.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <stdlib.h>
+
+int
+main(void)
+{
+ const char *str = "42", *errstr;
+ int res;
+
+ res = strtonum(str, 1, 64, &errstr);
+ return res != 42 || errstr != NULL;
+}