Host Integration Server Permits Embedded Null Characters to Be Returned in String Parameters (828663)



The information in this article applies to:

  • Microsoft Host Integration Server 2000
  • Microsoft Host Integration Server 2000 SP1

SYMPTOMS

COM Transaction Integrator (COMTI) string parameters may be truncated at the first Null character.

Specifically, when COMTI string delimitation is set to Null terminated, if the host returns string data that contains embedded Null characters, the string is truncated at the first Null character.

In Microsoft SNA Server 4.0, strings with embedded Null characters were returned to the calling program without being truncated. However, if you upgrade SNA Server 4.0 to Host Integration Server 2000, a calling application that was created with SNA Server 4.0 may experience a loss of data being returned to the calling application.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft Host Integration Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

328152 How to obtain the latest service pack for Host Integration Server 2000

Hotfix information

The English version of this hotfix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version            Size    File name
   ------------------------------------------------------------------
   25-Sep-2003  11:25  5.0.0.943          37,136  Capture.dll
   25-Sep-2003  11:25  5.0.0.943         323,856  Cedrmsgs.dll
   25-Sep-2003  11:25  5.0.0.943          33,040  Comticontext.dll
   25-Sep-2003  11:25  5.0.0.943         147,728  Convert.dll
   25-Sep-2003  11:25  5.0.0.943          74,000  Convertprim.dll
   25-Sep-2003  11:25  5.0.0.943          33,040  Dpl1.dll
   25-Sep-2003  11:25  5.0.0.943         823,568  Dtcob390.dll
   25-Sep-2003  11:25  5.0.0.943         311,568  Mobase.dll
   25-Sep-2003  11:25  5.0.0.943          37,136  Playback.dll
   25-Sep-2003  11:25  5.0.0.943          78,096  Readlib.dll
   25-Sep-2003  11:25  5.0.0.943         123,152  Tadtlb.dll
   25-Sep-2003  11:25  5.0.0.943         114,960  Tagen.dll
   25-Sep-2003  11:25  5.0.0.943          82,192  Tranlu62.dll
   25-Sep-2003  11:25  5.0.0.943         110,864  Trantcp.dll
   25-Sep-2003  11:25  5.0.0.943          49,424  Turnaround.dll
   25-Sep-2003  11:25  5.0.0.870         950,272  Componentbuilder.exe
   29-Mar-2003  01:15                    838,423  Comticb.chm
   29-Mar-2003  01:15                    812,988  Resnapin.chm
Note Because of file dependencies, the most recent fix that contains the preceding files may also contain additional files.

WORKAROUND

To work around this problem, change the string delimitation to Padded with spaces. This workaround resolves the problem for most situations. This workaround involves manually changing string delimitation for all the affected parameters in all the COMTI type libraries (possibly hundreds).

Important After you change this setting, all Null characters at the end of the string are returned to the client program (instead of just one terminating Null character being returned). Additionally, string delimitation affects both directions for an input/output string parameter. When you change string delimitation to Padded with spaces, data that is sent to the host will be padded with spaces. This setting may affect the host program.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section of this article. This problem was corrected in Microsoft Host Integration Server 2000 Service Pack 2.

MORE INFORMATION

After you apply the hotfix, add the following registry entry to cause COMTI to return strings with embedded Null characters when Null terminated is selected.
Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
Follow these steps, and then quit Registry Editor:
  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate and then click the following key in the registry:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Cedar\Defaults

  3. Right-click Defaults, point to New, and then click Key.
  4. Name the key TrimTrailingNulls.
  5. Right-click TrimTrailingNulls, point to New, and then click Binary Value.
  6. Name the binary value Activate.
  7. Right-click Activate, and then click Modify.
  8. Press the number 2 key (a value of 20 appears).
  9. Click OK, and then close the Registry Editor window.
Note The value of the key can be whatever you want it to be. As long as the key exists, the change takes effect.

Modification Type:MinorLast Reviewed:10/26/2005
Keywords:kbHotfixServer kbQFE kbHotfixServer kbQFE kbQFE kbhis2000fix kbprb KB828663 kbAudDeveloper