External Contributions to sfcc
******************************

Below are listed code contributions from the open source community.  
The format is:

Author, Organization
--------------------
MM/DD/YYYY [ bugnum ] description


where "bugnum" is the bug number on SourceForge where a summary of the fix can 
be found, along with a patch file containing the contributed code.

The SourceForge bugtracker can be found here:

https://sourceforge.net/tracker/?atid=712784&group_id=128809

********************************************************************************

Shashi Uli, Citrix
------------------
04/23/2008 [ 1940546 ] Memory corruption in AsciiToXmlStr()

Pavol Rusnak, Novell
--------------------
09/06/2009 [ 2102339 ] Missing ret values in sblim-sfcc
09/08/2008 [ 2102345 ] missing configuration of CIM-HOST-PORT in sblim-sfcc
11/12/2008 [ 2270179 ] Missing includes and values in return statements

Rajib Saha, AMI
---------------
08/19/2009 [ 2691478 ] sfcc 2.1.0 cannot handle OutParams on Extrinsic Method Call

Klaus Kampf, Novell
-------------------
09/02/2009 [ 2847782 ] sfcc getClass crashes if cimom isn't running
09/22/2009 [ 2849853 ] getClass reports most property types as CMPI_Instance
