Changeset 77640 in vbox for trunk/src/VBox/Additions/os2/VBoxSF
- Timestamp:
- Mar 10, 2019 9:13:03 PM (6 years ago)
- Location:
- trunk/src/VBox/Additions/os2/VBoxSF
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/os2/VBoxSF/VBoxSF.cpp
r76716 r77640 505 505 if (pDst) 506 506 { 507 APIRET rc = KernStrToUcs(NULL, &pDst->String.utf16[0], (char *)pszFolderPath, cchSrc + 4, cchSrc);507 APIRET rc = SafeKernStrToUcs(NULL, &pDst->String.utf16[0], (char *)pszFolderPath, cchSrc + 4, cchSrc); 508 508 if (rc == NO_ERROR) 509 509 { … … 525 525 if (pDst) 526 526 { 527 rc = KernStrToUcs(NULL, pDst->String.utf16, (char *)pszFolderPath, (cchSrc + 16) * 2, cchSrc);527 rc = SafeKernStrToUcs(NULL, pDst->String.utf16, (char *)pszFolderPath, (cchSrc + 16) * 2, cchSrc); 528 528 if (rc == NO_ERROR) 529 529 { … … 535 535 } 536 536 VbglR0PhysHeapFree(pDst); 537 LogRel(("vboxSfOs2ConvertPath: KernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath));537 LogRel(("vboxSfOs2ConvertPath: SafeKernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath)); 538 538 } 539 539 } 540 540 else 541 LogRel(("vboxSfOs2ConvertPath: KernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath));541 LogRel(("vboxSfOs2ConvertPath: SafeKernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath)); 542 542 } 543 543 … … 581 581 PSHFLSTRING pDst = (PSHFLSTRING)((uint8_t *)pvBuf + offStrInBuf); 582 582 583 APIRET rc = KernStrToUcs(NULL, &pDst->String.utf16[0], (char *)pszFolderPath, cchSrc + 4, cchSrc);583 APIRET rc = SafeKernStrToUcs(NULL, &pDst->String.utf16[0], (char *)pszFolderPath, cchSrc + 4, cchSrc); 584 584 if (rc == NO_ERROR) 585 585 { … … 604 604 pDst = (PSHFLSTRING)((uint8_t *)pvBuf + offStrInBuf); 605 605 606 rc = KernStrToUcs(NULL, pDst->String.utf16, (char *)pszFolderPath, (cchSrc + 16) * 2, cchSrc);606 rc = SafeKernStrToUcs(NULL, pDst->String.utf16, (char *)pszFolderPath, (cchSrc + 16) * 2, cchSrc); 607 607 if (rc == NO_ERROR) 608 608 { … … 614 614 } 615 615 VbglR0PhysHeapFree(pDst); 616 LogRel(("vboxSfOs2ConvertPath: KernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath));616 LogRel(("vboxSfOs2ConvertPath: SafeKernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath)); 617 617 } 618 618 } 619 619 else 620 LogRel(("vboxSfOs2ConvertPath: KernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath));620 LogRel(("vboxSfOs2ConvertPath: SafeKernStrToUcs returns %#x for %.*Rhxs\n", rc, cchSrc, pszFolderPath)); 621 621 } 622 622 -
trunk/src/VBox/Additions/os2/VBoxSF/VBoxSFA.asm
r75337 r77640 509 509 extern KernThunkStackTo16 510 510 extern KernSelToFlat 511 extern KernStrToUcs 512 extern KernStrFromUcs 511 513 segment CODE16 512 514 extern FSH_FORCENOSWAP … … 1614 1616 1615 1617 1618 ; 1619 ; 1620 ; Calling 32-bit kernel code. 1621 ; 1622 ; 1623 1624 BEGINCODE 1625 1626 ;; 1627 ; Wraps APIRET APIENTRY KernStrToUcs(PUconvObj, UniChar *, char *, LONG, LONG), 1628 ; to preserve ES. ES get trashed in some cases (probably conversion table init). 1629 ; 1630 BEGINPROC SafeKernStrToUcs 1631 DWARF_LABEL_TEXT32 NAME(SafeKernStrToUcs) 1632 push ebp 1633 mov ebp, esp 1634 push es 1635 push ds 1636 1637 push dword [ebp + 18h] 1638 push dword [ebp + 14h] 1639 push dword [ebp + 10h] 1640 push dword [ebp + 0ch] 1641 push dword [ebp + 08h] 1642 call KernStrToUcs 1643 1644 lea esp, [ebp - 8] 1645 pop ds 1646 pop es 1647 cld ; just to be on the safe side 1648 leave 1649 ret 1650 ENDPROC SafeKernStrToUcs 1651 1652 1653 ;; 1654 ; Wraps APIRET APIENTRY KernStrFromUcs(PUconvObj, char *, UniChar *, LONG, LONG), 1655 ; to preserve ES. ES get trashed in some cases (probably conversion table init). 1656 ; 1657 BEGINPROC SafeKernStrFromUcs 1658 DWARF_LABEL_TEXT32 NAME(SafeKernStrFromUcs) 1659 push ebp 1660 mov ebp, esp 1661 push es 1662 push ds 1663 1664 push dword [ebp + 18h] 1665 push dword [ebp + 14h] 1666 push dword [ebp + 10h] 1667 push dword [ebp + 0ch] 1668 push dword [ebp + 08h] 1669 call KernStrFromUcs 1670 1671 lea esp, [ebp - 8] 1672 pop ds 1673 pop es 1674 cld ; just to be on the safe side 1675 leave 1676 ret 1677 ENDPROC SafeKernStrFromUcs 1678 1616 1679 1617 1680 -
trunk/src/VBox/Additions/os2/VBoxSF/VBoxSFFind.cpp
r76716 r77640 94 94 * Conver to the native code page. 95 95 */ 96 APIRET rc = KernStrFromUcs(NULL, pszTmp, pwszName, cbTmp, cwcName);96 APIRET rc = SafeKernStrFromUcs(NULL, pszTmp, pwszName, cbTmp, cwcName); 97 97 if (rc != NO_ERROR) 98 98 { 99 LogRel(("vboxSfOs2IsUtf8Name8dot3: KernStrFromUcs failed: %d\n", rc));99 LogRel(("vboxSfOs2IsUtf8Name8dot3: SafeKernStrFromUcs failed: %d\n", rc)); 100 100 return false; 101 101 } … … 134 134 { 135 135 char *pszDst = (char *)pbDst + 1; 136 APIRET rc = KernStrFromUcs(NULL, pszDst, pwszSrc, CCHMAXPATHCOMP, cwcSrc);136 APIRET rc = SafeKernStrFromUcs(NULL, pszDst, pwszSrc, CCHMAXPATHCOMP, cwcSrc); 137 137 if (rc == NO_ERROR) 138 138 { … … 143 143 return pbDst; 144 144 } 145 LogRel(("vboxSfOs2CopyUtf8Name: KernStrFromUcs failed: %d\n", rc));145 LogRel(("vboxSfOs2CopyUtf8Name: SafeKernStrFromUcs failed: %d\n", rc)); 146 146 return NULL; 147 147 } … … 154 154 { 155 155 char *pszDst = (char *)(pbDst + 1); 156 APIRET rc = KernStrFromUcs(NULL, pszDst, RTUtf16ToUpper(pwszSrc), CCHMAXPATHCOMP, cwcSrc);156 APIRET rc = SafeKernStrFromUcs(NULL, pszDst, RTUtf16ToUpper(pwszSrc), CCHMAXPATHCOMP, cwcSrc); 157 157 if (rc == NO_ERROR) 158 158 { … … 163 163 return pbDst; 164 164 } 165 LogRel(("vboxSfOs2CopyUtf16NameAndUpperCase: KernStrFromUcs failed: %#x\n", rc));165 LogRel(("vboxSfOs2CopyUtf16NameAndUpperCase: SafeKernStrFromUcs failed: %#x\n", rc)); 166 166 return NULL; 167 167 } … … 443 443 PFSFSI pFsFsi, PVBOXSFFS pFsFsd, PBYTE pbData, ULONG cbData, PUSHORT pcMatches, ULONG uLevel, ULONG fFlags) 444 444 { 445 LogFlow((" pCdFsi=%p pCdFsd=%p pszPath=%p:{%s} offCurDirEnd=%d fAttribs=%#x pFsFsi=%p pFsFsd=%p pbData=%p cbData=%#x pcMatches=%p:{%#x} uLevel=%#x fFlags=%#x\n",445 LogFlow(("FS32_FINDFIRST: pCdFsi=%p pCdFsd=%p pszPath=%p:{%s} offCurDirEnd=%d fAttribs=%#x pFsFsi=%p pFsFsd=%p pbData=%p cbData=%#x pcMatches=%p:{%#x} uLevel=%#x fFlags=%#x\n", 446 446 pCdFsi, pCdFsd, pszPath, pszPath, offCurDirEnd, fAttribs, pFsFsi, pFsFsd, pbData, cbData, pcMatches, *pcMatches, uLevel, fFlags)); 447 447 USHORT const cMaxMatches = *pcMatches; -
trunk/src/VBox/Additions/os2/VBoxSF/VBoxSFInternal.h
r76716 r77640 248 248 APIRET vboxSfOs2MakeEmptyEaListEx(PEAOP pEaOp, ULONG uLevel, uint32_t *pcbWritten, ULONG *poffError); 249 249 250 DECLASM(PVBOXSFVP) Fsh32GetVolParams(USHORT hVbp, PVPFSI *ppVpFsi /*optional*/); 250 DECLASM(PVBOXSFVP) Fsh32GetVolParams(USHORT hVbp, PVPFSI *ppVpFsi /*optional*/); 251 DECLASM(APIRET) SafeKernStrToUcs(PUconvObj, UniChar *, char *, LONG, LONG); 252 DECLASM(APIRET) SafeKernStrFromUcs(PUconvObj, char *, UniChar *, LONG, LONG); 251 253 252 254
Note:
See TracChangeset
for help on using the changeset viewer.