From c8dce9dc0ec596f219c1d807349c7f942ebf7cc6 Mon Sep 17 00:00:00 2001 From: unset Date: Thu, 30 Jan 2025 16:09:23 +0100 Subject: [PATCH] improved random seed to be less predictable --- .../workflows/create_package_on_release.yml | 22 +++++++++++++++++++ src/main.c | 18 +++++---------- 2 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/create_package_on_release.yml diff --git a/.github/workflows/create_package_on_release.yml b/.github/workflows/create_package_on_release.yml new file mode 100644 index 0000000..4f3f95c --- /dev/null +++ b/.github/workflows/create_package_on_release.yml @@ -0,0 +1,22 @@ +name: create package on release + +on: + release: + types: [created] + +jobs: + build_package_and_release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: create deb package + run: dpkg-deb --build ./package + + - name: upload release assets + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{github.event.release.tag_name}} + files: "${{github.workspace}}/builds/*" + diff --git a/src/main.c b/src/main.c index 037df5f..f17106b 100644 --- a/src/main.c +++ b/src/main.c @@ -1,18 +1,12 @@ -#include #include +#include #include +#include int main(void) { - srand(time(NULL)); // set the random seed to the system time - char* result = NULL; - - if (rand() & (~1) != 0) { - result = "heads"; - } - else { - result = "tails"; - } - - printf("%s\n", result); + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + srand((uint32_t)(ts.tv_nsec ^ ts.tv_sec)); // combine seconds and nanoseconds + printf("%s\n", (rand() & 1) ? "heads" : "tails"); return 0; }