@@ -107,31 +107,9 @@ CorUnix::InternalDuplicateHandle(
107107 PAL_ERROR palError = NO_ERROR;
108108 IPalObject *pobjSource = NULL ;
109109
110- DWORD source_process_id;
111- DWORD target_process_id;
112- DWORD cur_process_id;
113-
114- cur_process_id = GetCurrentProcessId ();
115- source_process_id = PROCGetProcessIDFromHandle (hSourceProcess);
116- target_process_id = PROCGetProcessIDFromHandle (hTargetProcess);
117-
118- /* Check validity of process handles */
119- if (0 == source_process_id || 0 == target_process_id)
120- {
121- ASSERT (" Can't duplicate handle: invalid source or destination process" );
122- palError = ERROR_INVALID_PARAMETER;
123- goto InternalDuplicateHandleExit;
124- }
125-
126- /* At least source or target process should be the current process. */
127- if (source_process_id != cur_process_id
128- && target_process_id != cur_process_id)
129- {
130- ASSERT (" Can't duplicate handle : neither source or destination"
131- " processes are from current process" );
132- palError = ERROR_INVALID_PARAMETER;
133- goto InternalDuplicateHandleExit;
134- }
110+ /* We do not support other process in PAL */
111+ _ASSERTE (hSourceProcess == hPseudoCurrentProcess);
112+ _ASSERTE (hTargetProcess == hPseudoCurrentProcess);
135113
136114 if (FALSE != bInheritHandle)
137115 {
@@ -169,16 +147,6 @@ CorUnix::InternalDuplicateHandle(
169147 goto InternalDuplicateHandleExit;
170148 }
171149
172- // Handles can't be remoted cross-process.
173- // Just return the same handle.
174- if (source_process_id != cur_process_id
175- || target_process_id != cur_process_id)
176- {
177- *phDuplicate = hSource;
178- palError = NO_ERROR;
179- goto InternalDuplicateHandleExit;
180- }
181-
182150 //
183151 // Obtain the source IPalObject
184152 //
@@ -200,10 +168,10 @@ CorUnix::InternalDuplicateHandle(
200168 }
201169 else if (hPseudoCurrentProcess == hSource)
202170 {
171+ /* The only pseudo handle is invariant */
203172 TRACE (" Duplicating process pseudo handle(%p)\n " , hSource);
204-
205- pobjSource = g_pobjProcess;
206- pobjSource->AddReference ();
173+ *phDuplicate = hPseudoCurrentProcess;
174+ goto InternalDuplicateHandleExit;
207175 }
208176 else if (hPseudoCurrentThread == hSource)
209177 {
0 commit comments