Commit 28f2021
committed
Fix Galois field operations and add reference counting for table initialization
This commit addresses two important improvements to the RS Vandermonde
implementation:
1. Type safety fix in region_multiply():
- Cast from_buf[i] to unsigned char before passing to rs_galois_mult()
- Ensures correct behavior when processing signed char values in
Galois field arithmetic operations
- Applied to both XOR and non-XOR code paths
2. Reference counting for Galois table initialization:
- Add init_counter to track multiple initialization/deinitialization
calls
- Prevent double initialization of log_table and ilog_table
- Implement proper reference counting in rs_galois_deinit_tables()
to only free tables when all references are released
- Set pointers to NULL after freeing to prevent use-after-free issues
These changes improve robustness and prevent potential crashes from
improper table lifecycle management.1 parent f91c1b2 commit 28f2021
2 files changed
+26
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
370 | 370 | | |
371 | 371 | | |
372 | 372 | | |
373 | | - | |
| 373 | + | |
374 | 374 | | |
375 | 375 | | |
376 | 376 | | |
| |||
379 | 379 | | |
380 | 380 | | |
381 | 381 | | |
382 | | - | |
| 382 | + | |
383 | 383 | | |
384 | 384 | | |
385 | 385 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
47 | 48 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
52 | 56 | | |
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
58 | 62 | | |
59 | | - | |
| 63 | + | |
60 | 64 | | |
61 | 65 | | |
62 | | - | |
| 66 | + | |
63 | 67 | | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
67 | 71 | | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
72 | 86 | | |
73 | 87 | | |
74 | 88 | | |
| |||
0 commit comments