File tree 1 file changed +9
-4
lines changed
1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -195,11 +195,20 @@ PHP_FUNCTION(shm_attach)
195
195
PHP_FUNCTION (shm_detach )
196
196
{
197
197
zval * shm_id ;
198
+ sysvshm_shm * shm_list_ptr ;
198
199
199
200
if (SUCCESS != zend_parse_parameters (ZEND_NUM_ARGS (), "O" , & shm_id , sysvshm_ce )) {
200
201
RETURN_THROWS ();
201
202
}
202
203
204
+ shm_list_ptr = Z_SYSVSHM_P (shm_id );
205
+ if (!shm_list_ptr -> ptr ) {
206
+ RETURN_TRUE ;
207
+ }
208
+
209
+ shmdt ((void * ) shm_list_ptr -> ptr );
210
+ shm_list_ptr -> ptr = NULL ;
211
+
203
212
RETURN_TRUE ;
204
213
}
205
214
/* }}} */
@@ -216,7 +225,6 @@ PHP_FUNCTION(shm_remove)
216
225
}
217
226
218
227
shm_list_ptr = Z_SYSVSHM_P (shm_id );
219
-
220
228
if (!shm_list_ptr -> ptr ) {
221
229
RETURN_TRUE ;
222
230
}
@@ -226,9 +234,6 @@ PHP_FUNCTION(shm_remove)
226
234
RETURN_FALSE ;
227
235
}
228
236
229
- shmdt ((void * ) shm_list_ptr -> ptr );
230
- shm_list_ptr -> ptr = NULL ;
231
-
232
237
RETURN_TRUE ;
233
238
}
234
239
/* }}} */
You can’t perform that action at this time.
0 commit comments