https://www.theregister.co.uk/2018/04/04/microsoft_windows_defender_rar_bug/
A remote-code execution vulnerability in Windows Defender – a flaw that can be exploited by malicious .rar files to run malware on PCs – has been traced back to an open-source archiving tool Microsoft adopted for its own use.
[...] Apparently, Microsoft forked that version of unrar and incorporated the component into its operating system's antivirus engine. That forked code was then modified so that all signed integer variables were converted to unsigned variables, causing knock-on problems with mathematical comparisons. This in turn left the software vulnerable to memory corruption errors, which can crash the antivirus package or allow malicious code to potentially execute.
(Score: 0) by Anonymous Coward on Tuesday April 10 2018, @07:56AM (1 child)
Nope.
Create a an unsigned integer x in any language of your choice. Then do a while(x >= 0). Your program will hang.
In fact, take any language with more than one variable type, and change a variable to a different type without understanding the consequences. You will run into problems.
A Javascript example:
if(0) // false.
if("0") // true
(Score: 2) by tangomargarine on Tuesday April 10 2018, @04:15PM
I like how your example ironically uses an *unsigned* integer. Does anybody other than the aforementioned C-style languages use unsigneds these days?
Well yeah, because JavaScript is horrible and ugly and no.
"Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"