Hello,
I found a bug in coreutils' size option, which currently accepts options like "split -b 1bB" or "split -b 1biB". I believe these options should be rejected. I looked through the code and found out that gnulib's __xstrtol function in xstrtol.c is the culprit. I did a quick fix and the patch is attached. The patch should fix this issue in general.
Additionally, while looking at the code, I may have found another bug, but I am not so sure whether this is how it is intended. When I run "shred -s 1B", I think it should shred only a single byte, but it seems to shred 1024 bytes instead. Is this behavior intended?
Anyways, I have marked this down in the patch as a FIXME comment. Since the patch applies to gnulib, I am not sure whether this patch should be submitted to gnulib bug report instead. Please let me know if so.
Lastly, I noticed that different programs within coreutils accept different size suffixes. For example, split's valid suffix is "bEGKkMmPTYZ0" while shred's is "cbBkKMGTPEZY0". I thought maybe it is better to unify valid suffix for all the programs within coreutils.
Best,