1. Impact: mount.ecryptfs_private fails (with an infinite loop) on arm
2. Development fix: the infinite loop happens because an unsigned char is being compared to -1 as a condition to end the loop
3. Stable fix: same as development fix
4. Test case: run 'mount.ecryptfs_private ab' on arm
5. Regression potential: I used this updated code (on arm) for a week with no issues. If there were a regression it should have been seen (at argument parsing time) during regular use of mount.ecryptfs_private.
char is unsigned on arm (signed on x86).
fetch_sig compares the result of fgetc to EOF (-1), which of course never succeeds, causing an infinite loop.