From f4a41502e680b3fdcfda0de68adfc7e1e685ec77 Mon Sep 17 00:00:00 2001 From: Makar Lill Date: Tue, 31 Mar 2026 21:11:53 +0300 Subject: [PATCH 1/3] fix: fixed logic error in generate next byte --- assets/expected1.bin | 2 +- prandom.c | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/assets/expected1.bin b/assets/expected1.bin index 67407da..0bfdca3 100644 --- a/assets/expected1.bin +++ b/assets/expected1.bin @@ -1 +1 @@ -Gkwy`½?ɲ \ No newline at end of file +GŽ­åú ŽŸ‚: \ No newline at end of file diff --git a/prandom.c b/prandom.c index a5be38c..1587b6d 100644 --- a/prandom.c +++ b/prandom.c @@ -54,16 +54,13 @@ GF256_t gf256_gprn_next(struct gf256_gprn* gprn) for (i = 0; i < POLY_DEGREE; i++) { - if (gprn->t[i] != 0) - { - idx = (gprn->index + i) % POLY_DEGREE; - new_byte = GF256_Add(new_byte, GF256_Mul(gprn->t[i], gprn->coeff[idx])); - } + idx = (gprn->index + i) % POLY_DEGREE; + new_byte = GF256_Add(new_byte, GF256_Mul(gprn->coeff[i], gprn->t[idx])); } // "circular" array - gprn->coeff[gprn->index] = new_byte; - gprn->index = (gprn->index + 1) % POLY_DEGREE; + gprn->t[gprn->index] = new_byte; + gprn->index = (gprn->index + 1) % POLY_DEGREE; return new_byte; } From 8668b4b67ec30a80d13bada2066d8d39261c5854 Mon Sep 17 00:00:00 2001 From: Makar Lill Date: Wed, 15 Apr 2026 13:59:06 +0300 Subject: [PATCH 2/3] fix: initialize kernel_buf arr into .bss (instead of stack) --- driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver.c b/driver.c index ea3a6cb..41ea959 100644 --- a/driver.c +++ b/driver.c @@ -110,7 +110,7 @@ static int gprn_init_t(struct gf256_gprn* gprn) static ssize_t misc_read(struct file* filp, char __user* buf, size_t length, loff_t* f_pos) { - GF256_t kernel_buf[1024]; + static GF256_t kernel_buf[1024]; size_t bytes_to_read = length; size_t chunk; From 46e49966b05531b835f5a7972c12f089892208dd Mon Sep 17 00:00:00 2001 From: Makar Lill Date: Wed, 15 Apr 2026 14:00:43 +0300 Subject: [PATCH 3/3] cosmetic: use clang-format to driver.c --- driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/driver.c b/driver.c index 41ea959..2d7c45d 100644 --- a/driver.c +++ b/driver.c @@ -111,8 +111,8 @@ static int gprn_init_t(struct gf256_gprn* gprn) static ssize_t misc_read(struct file* filp, char __user* buf, size_t length, loff_t* f_pos) { static GF256_t kernel_buf[1024]; - size_t bytes_to_read = length; - size_t chunk; + size_t bytes_to_read = length; + size_t chunk; if (!global_gprn) return -ENODEV;