]> granicus.if.org Git - php/commitdiff
- Fix leak and some logic
authorZeev Suraski <zeev@php.net>
Mon, 14 Aug 2000 20:16:27 +0000 (20:16 +0000)
committerZeev Suraski <zeev@php.net>
Mon, 14 Aug 2000 20:16:27 +0000 (20:16 +0000)
Zend/zend_execute.c

index 521eb2935d7fd42e0aec88b906ff77bbad3f5b8e..871a4394efac2da262271420d463861fbeee86e2 100644 (file)
@@ -1988,22 +1988,20 @@ send_by_ref:
                                                                        if (!opened_path || zend_hash_add(&EG(included_files), opened_path, strlen(opened_path)+1, (void *)&dummy, sizeof(int), NULL)==SUCCESS) {
                                                                                new_op_array = zend_compile_file(&file_handle CLS_CC);
                                                                                zend_destroy_file_handle(&file_handle CLS_CC);
-                                                                               if (!new_op_array) {
-                                                                                       fclose(file_handle.handle.fp);
-                                                                               }
+                                                                               opened_path = NULL; /* zend_destroy_file_handle() already frees it */
                                                                        } else {
                                                                                fclose(file_handle.handle.fp);
                                                                        }
                                                                } else {
-                                                                       if (opline->opcode==ZEND_INCLUDE_ONCE) {
+                                                                       if (opline->op2.u.constant.value.lval==ZEND_INCLUDE_ONCE) {
                                                                                zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle.filename);
                                                                        } else {
                                                                                zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle.filename);
                                                                        }
                                                                }
-                                                               /* if (opened_path) {
-                                                                       free (opened_path);
-                                                                       } */
+                                                               if (opened_path) {
+                                                                       free(opened_path);
+                                                               }
                                                                break;
                                                        }
                                                        break;