Skip to content

Commit 40d6147

Browse files
committed
Fix opcache blacklist leak
Don't recompute (and leak) the regex for every glob element, only do this once at the end.
1 parent c313278 commit 40d6147

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

ext/opcache/zend_accelerator_blacklist.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,7 @@ static inline void zend_accel_blacklist_allocate(zend_blacklist *blacklist)
232232
}
233233
}
234234

235-
#ifdef HAVE_GLOB
236235
static void zend_accel_blacklist_loadone(zend_blacklist *blacklist, char *filename)
237-
#else
238-
void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename)
239-
#endif
240236
{
241237
char buf[MAXPATHLEN + 1], real_path[MAXPATHLEN + 1], *blacklist_path = NULL;
242238
FILE *fp;
@@ -315,12 +311,11 @@ void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename)
315311
if (blacklist_path) {
316312
free(blacklist_path);
317313
}
318-
zend_accel_blacklist_update_regexp(blacklist);
319314
}
320315

321-
#ifdef HAVE_GLOB
322316
void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename)
323317
{
318+
#ifdef HAVE_GLOB
324319
glob_t globbuf;
325320
int ret;
326321
unsigned int i;
@@ -340,8 +335,11 @@ void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename)
340335
}
341336
globfree(&globbuf);
342337
}
343-
}
338+
#else
339+
zend_accel_blacklist_loadone(blacklist, filename);
344340
#endif
341+
zend_accel_blacklist_update_regexp(blacklist);
342+
}
345343

346344
zend_bool zend_accel_blacklist_is_blacklisted(zend_blacklist *blacklist, char *verify_path, size_t verify_path_len)
347345
{

0 commit comments

Comments
 (0)