http://bugzilla.novell.com/show_bug.cgi?id=504791

User [email protected] added comment
http://bugzilla.novell.com/show_bug.cgi?id=504791#c1





--- Comment #1 from Andy Hume <[email protected]>  2009-05-18 09:10:58 MDT 
---
The original source is:
[[
  If FileNumber <= 0 _
       OrElse FileNumber > 255 _
       OrElse (Not m_OpenFiles Is Nothing AndAlso _
               m_OpenFiles.ContainsKey(FileNumber)) Then
     Throw ...
  End If
]]

Viewing the IL in the Microsoft.Visual.Basic.dll assembly installed by Mono
(2.4; with a quick check >=2.0 is bad, 1.9 is ok, <1.9 is NotImpl) with
Reflector shows:
[[
    If (IIf(((FileNumber <= 0) OrElse (FileNumber > &HFF)), 1, 0) = 0) Then
    End If
    If (IIf((IIf((
        (FileSystem.m_OpenFiles Is Nothing) _
         AndAlso FileSystem.m_OpenFiles.ContainsKey(FileNumber)), _
           1, 0) = 0), 1, 0) <> 0) Then
      Throw ...
    End If
]]

So the first two clauses have been ignored (thus an illegal FileNumber will
never be detected), and more pertantly the "Not" in the null check has gone
missing (possibly applied to the AndAlso result???).

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to