summaryrefslogtreecommitdiff
path: root/util/libreboot-utils/lottery.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/libreboot-utils/lottery.c')
-rw-r--r--util/libreboot-utils/lottery.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/util/libreboot-utils/lottery.c b/util/libreboot-utils/lottery.c
index cbe8a871..2ead8563 100644
--- a/util/libreboot-utils/lottery.c
+++ b/util/libreboot-utils/lottery.c
@@ -21,13 +21,16 @@ main(int argc, char **argv)
{
int same = 0;
char *buf;
-
(void) argc, (void) argv;
- xpledgex("stdio", NULL);
(void) errhook(exit_cleanup);
+ if (lbsetprogname(argv[0]) == NULL)
+ err_exit(errno, "could not set progname");
+
+ /* https://man.openbsd.org/pledge.2 */
+ xpledgex("stdio", NULL);
- buf = mkrbuf(BUFSIZ + 1);
+ buf = mkrbuf(BUFSIZ);
if (!memcmp(buf, buf + (BUFSIZ >> 1), BUFSIZ >> 1))
same = 1;
@@ -82,5 +85,26 @@ spew_buf(const void *data, size_t len)
static void
exit_cleanup(void)
{
+#if defined(__OpenBSD__)
+ fprintf(stderr, "OpenBSD wins\n");
+#elif defined(__FreeBSD__)
+ fprintf(stderr, "FreeBSD wins\n");
+#elif defined(__NetBSD__)
+ fprintf(stderr, "NetBSD wins\n");
+#elif defined(__APPLE__)
+ fprintf(stderr, "MacOS wins\n");
+#elif defined(__DragonFly__)
+ fprintf(stderr, "DragonFly BSD wins\n");
+#elif defined(__linux__)
+#if defined(__GLIBC__)
+ fprintf(stderr, "GNU/Linux wins\n");
+#elif defined(__MUSL__)
+ fprintf(stderr, "Rich Felker wins\n");
+#else
+ fprintf(stderr, "Linux wins\n");
+#endif
+#else
+ fprintf(stderr, "Your operating system wins\n");
+#endif
return;
}