https://bugzilla.novell.com/show_bug.cgi?id=676368

https://bugzilla.novell.com/show_bug.cgi?id=676368#c0


           Summary: Should not use ODBC statement handles after
                    SQLDisconnect called
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.8.x
          Platform: All
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.Data
        AssignedTo: [email protected]
        ReportedBy: [email protected]
         QAContact: [email protected]
          Found By: ---
           Blocker: ---


Created an attachment (id=417126)
 --> (http://bugzilla.novell.com/attachment.cgi?id=417126)
patch that addresses this bug

User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13
(KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13

SQLDisconnect() frees any statements allocated on that
connection, so statement handles become invalid (even to free)
after SQLDisconnect() is called.

OdbcConnection keeps a list of OdbcCommands in order to
destroy them before calling SQLDisconnect, but the list is of
weak references (and for good reason), so once their own
destruction commences, they no longer appear in this list.

Due to the vagaries of thread scheduling it can happen that
destruction of the OdbcCommand commences before
SQLDisconnect() is called but SQLFreeStmt() is called after
it.  (Even worse, they could overlap.)

The result is a crash.



The attached patch works for me.

Reproducible: Always

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

Reply via email to