Hello all,
Udpcast 20200328 is released.
The most important changes are:
- Use newest busybox (1.31.1) and kernel (5.0.21)
- Udp-sender now returns a non-zero exit status if a timeout expires at
start
- Fix compiler warnings and various typoes
- Fixes for Mingw
- Fix issues in assembly in fec.c
Unfortunately, due to bigger sizes produced by today's kernels, and due
to lack of usage, I dropped floppy support. Similarly, Etherboot support
has been dropped. Indeed PXE is the recommended net boot solution today.
Regards,
Alain
Dear developpers,
we are academic researchers working in automated program analysis.
We are currently interested in checking compliance of inline asm chunks
as found in C programs.
While benchmarking our tool and technique, we found 2 significant compliance
issues in UDPCAST. We report them to you, as well as adequate patches
with explanations.
* All these bugs are related to compliance between the block of asm and its
surrounding "contract" (in gcc-style notation). They are akin to undefined or
implementation-defined behaviours in C: they currently do not manifest
themselves in your program, but at some point in time with compiler
optimizations becoming more and more aggressive or changes in undocumented
compiler choices regarding asm chunks, they can suddenly trigger a
(hard-to-find) bug.
* The typical problems come from the compiler missing dataflow information
and performing undue optimizations on this wrong basis, or the compiler
allocating an already used register. Actually, we demonstrate "in lab" problems
with all these categories of bugs in case of inlining
(especially with LTO enabler) or code refactoring.
* Some of those issues may seems benign or irrealistic but it cost nothing
to patch so, why not do it?
We would be very interested to hear your opinion on these matters.
Are you interested in such errors and patches?
Also, besides the patches, we are currently working on a code analyzer
prototype designed to check asm compliance and to propose patches when the
chunk is not compliant. This is still work in progress and we are finalizing it.
The errors and patches I reported to you came from my prototype.
In case such a prototype would be made available, would you consider using it?
Best regards
Frédéric Recoules