summaryrefslogtreecommitdiff
path: root/network/ndis/mux/notifyob/virtual.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'network/ndis/mux/notifyob/virtual.cpp')
-rw-r--r--network/ndis/mux/notifyob/virtual.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/network/ndis/mux/notifyob/virtual.cpp b/network/ndis/mux/notifyob/virtual.cpp
index 5b6cde80..fd3cce0e 100644
--- a/network/ndis/mux/notifyob/virtual.cpp
+++ b/network/ndis/mux/notifyob/virtual.cpp
@@ -330,17 +330,22 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
WCHAR szMiniportGuid[MAX_PATH+1];
LPWSTR lpDevice;
LONG lResult = 0;
-
+ int numChars;
TraceMsg( L"-->CMuxVirtualMiniport::ApplyRegistryChanges.\n" );
switch( eApplyAction ) {
case eActAdd: // Virtual miniport added.
- StringFromGUID2( m_guidAdapter,
+ numChars = StringFromGUID2( m_guidAdapter,
szAdapterGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
StringCchPrintfW ( szAdapterGuidKey,
celems(szAdapterGuidKey),
L"%s\\%s",
@@ -361,10 +366,17 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
if ( lResult == ERROR_SUCCESS ) {
- StringFromGUID2( m_guidMiniport,
+ numChars = StringFromGUID2( m_guidMiniport,
szMiniportGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ RegCloseKey(hkeyAdapterGuid);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
lpDevice = AddDevicePrefix( szMiniportGuid );
if ( lpDevice ) {
@@ -411,10 +423,15 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
case eActRemove: // Virtual miniport removed.
- StringFromGUID2( m_guidAdapter,
+ numChars = StringFromGUID2( m_guidAdapter,
szAdapterGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
StringCchPrintfW( szAdapterGuidKey,
celems(szAdapterGuidKey),
L"%s\\%s",
@@ -434,10 +451,17 @@ HRESULT CMuxVirtualMiniport::ApplyRegistryChanges(ConfigAction eApplyAction)
if ( lResult == ERROR_SUCCESS ) {
- StringFromGUID2( m_guidMiniport,
+ numChars = StringFromGUID2( m_guidMiniport,
szMiniportGuid,
MAX_PATH+1 );
+ if (numChars == 0) {
+
+ RegCloseKey(hkeyAdapterGuid);
+
+ return HRESULT_FROM_WIN32(ERROR_BUFFER_OVERFLOW);
+ }
+
lpDevice = AddDevicePrefix( szMiniportGuid );
TraceMsg( L" Deleting %s at %s.\n",
lpDevice,