System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation
2012-02-29
14:55 Closed ticket [8a426d12eb]: delegates marked with UnmanagedFunctionPointer (i.e. called from native code) must not throw exceptions plus 2 other changes artifact: 2ec39c6405 user: mistachkin
2012-02-19
13:31
Merge fix for ticket [8a426d12eb] along with logging and DateTime handling enhancements to trunk. check-in: c3bb6c2582 user: mistachkin tags: trunk
13:20 Ticket [8a426d12eb] delegates marked with UnmanagedFunctionPointer (i.e. called from native code) must not throw exceptions status still Open with 2 other changes artifact: d499f54003 user: mistachkin
08:11
Make sure that exceptions are never thrown back to native code from user-provided function and collation implementations. Also, log all such caught callback exceptions if the appropriate connection flag is set. Fix for ticket [8a426d12eb]. Pass connection flags into SQLiteFunction binding method and refactor internal interfaces to support this. Change type of _contextDataList (SQLiteFunction) dictionary keys from long to IntPtr. check-in: 6136a92dc5 user: mistachkin tags: logBind
04:51 Ticket [8a426d12eb] delegates marked with UnmanagedFunctionPointer (i.e. called from native code) must not throw exceptions status still Open with 1 other change artifact: 4bd528bd34 user: mistachkin
04:50 Ticket [8a426d12eb]: 1 change artifact: c935f2a3b2 user: mistachkin
04:50 Ticket [8a426d12eb]: 4 changes artifact: f57d4d4d2a user: mistachkin
04:49 New ticket [8a426d12eb]. artifact: 525d14b8b4 user: mistachkin

Ticket Hash: 8a426d12eb2a1fa69ebda7c09623298fa8473679
Title: delegates marked with UnmanagedFunctionPointer (i.e. called from native code) must not throw exceptions
Status: Closed Type: Code_Defect
Severity: Critical Priority: NextRelease
Subsystem: Integration_Via_PInvoke Resolution: Fixed
Last Modified: 2012-02-29 14:55:38
Version Found In: 1.0.79.0
Description:
Managed code used in a delegate exposed to native code cannot throw exceptions without resulting in undefined behavior, see:

Implications of throwing exception in delegate of unmanaged callback

The potential solution is to wrap all calls into any user-provided [managed] code in try/catch blocks and then simply log any thrown exceptions instead of letting them escape back to native code.

mistachkin added on 2012-02-19 13:20:03 UTC:
This has been fixed by check-in [6136a92dc5].