X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Fdecl.c;h=2d974808b7bd8ee3d7cf735632ba22ad8f878876;hb=ad2c22df5e451fffecc7b7ebdc9c5a4bb36e543e;hp=95122ab1d9dad9112f172324f534abd1999b9ae2;hpb=31cfe5e5e1bd44d408c5869e63fcc7419e81c294;p=m6w6%2Fext-psi diff --git a/src/types/decl.c b/src/types/decl.c index 95122ab..2d97480 100644 --- a/src/types/decl.c +++ b/src/types/decl.c @@ -25,7 +25,11 @@ #include "php_psi_stdinc.h" +#include "php_psi.h" + #include +#include + #include "data.h" #define PSI_FUNC_REDIRS @@ -85,9 +89,8 @@ static inline bool psi_decl_validate_func(struct psi_data *data, { struct psi_func_redir *redir; - if (!strcmp(func->var->name, "dlsym")) { - data->error(data, func->token, PSI_WARNING, - "Cannot dlsym dlsym (sic!)"); + if (!func->var->name) { + data->error(data, func->token, PSI_WARNING, "Cannot load anonymous decl"); return false; } @@ -158,3 +161,17 @@ bool psi_decl_validate_nodl(struct psi_data *data, struct psi_decl *decl, return true; } + +bool psi_decl_is_blacklisted(const char *name) +{ + char *blacklisted; + size_t i = 0; + + while (psi_plist_get(PSI_G(blacklist).decls, i++, &blacklisted)) { + if (!fnmatch(blacklisted, name, 0)) { + return true; + } + } + return false; +} +