mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
Include common extensions in symbol mapper
Summary: Spamming everyone who got bitten by this. We upgraded the libphutil library system recently, but the "use of undeclared function" lint check used to run only on files you touched and now runs on every file in every library you use. This means that if you don't have pcntl or ldap installed, you'll get errors about use of functions from them on every change. Instead, ship with a list of functions which are provided by extensions that we'll ignore when calculating dependencies, so not having pcntl doesn't mean you have to excuse through irrelevant errrors every time. Test Plan: Ran script with an unknown function, got it in the map; added it to the extension list, it vanished from the map. Reviewers: vrana, btrahan, allenjohnashton, ddfisher, keebuhm, phleet, nodren Reviewed By: vrana CC: aran Maniphest Tasks: T1347 Differential Revision: https://secure.phabricator.com/D2728
This commit is contained in:
parent
1100e8768a
commit
264d915e13
2 changed files with 274 additions and 0 deletions
264
scripts/php_extension_functions.txt
Normal file
264
scripts/php_extension_functions.txt
Normal file
|
@ -0,0 +1,264 @@
|
||||||
|
apc_add
|
||||||
|
apc_bin_dump
|
||||||
|
apc_bin_dumpfile
|
||||||
|
apc_bin_load
|
||||||
|
apc_bin_loadfile
|
||||||
|
apc_cache_info
|
||||||
|
apc_cas
|
||||||
|
apc_clear_cache
|
||||||
|
apc_compile_file
|
||||||
|
apc_dec
|
||||||
|
apc_define_constants
|
||||||
|
apc_delete
|
||||||
|
apc_delete_file
|
||||||
|
apc_exists
|
||||||
|
apc_fetch
|
||||||
|
apc_inc
|
||||||
|
apc_load_constants
|
||||||
|
apc_sma_info
|
||||||
|
apc_store
|
||||||
|
bcadd
|
||||||
|
bccomp
|
||||||
|
bcdiv
|
||||||
|
bcmod
|
||||||
|
bcmul
|
||||||
|
bcpow
|
||||||
|
bcpowmod
|
||||||
|
bcscale
|
||||||
|
bcsqrt
|
||||||
|
bcsub
|
||||||
|
curl_close
|
||||||
|
curl_copy_handle
|
||||||
|
curl_errno
|
||||||
|
curl_error
|
||||||
|
curl_escape
|
||||||
|
curl_exec
|
||||||
|
curl_getinfo
|
||||||
|
curl_init
|
||||||
|
curl_multi_add_handle
|
||||||
|
curl_multi_close
|
||||||
|
curl_multi_exec
|
||||||
|
curl_multi_getcontent
|
||||||
|
curl_multi_info_read
|
||||||
|
curl_multi_init
|
||||||
|
curl_multi_remove_handle
|
||||||
|
curl_multi_select
|
||||||
|
curl_reset
|
||||||
|
curl_setopt
|
||||||
|
curl_setopt_array
|
||||||
|
curl_share_close
|
||||||
|
curl_share_init
|
||||||
|
curl_share_setopt
|
||||||
|
curl_unescape
|
||||||
|
curl_version
|
||||||
|
image2wbmp
|
||||||
|
image_type_to_extension
|
||||||
|
image_type_to_mime_type
|
||||||
|
imagealphablending
|
||||||
|
imageantialias
|
||||||
|
imagearc
|
||||||
|
imagechar
|
||||||
|
imagecharup
|
||||||
|
imagecolorallocate
|
||||||
|
imagecolorallocatealpha
|
||||||
|
imagecolorat
|
||||||
|
imagecolorclosest
|
||||||
|
imagecolorclosestalpha
|
||||||
|
imagecolorclosesthwb
|
||||||
|
imagecolordeallocate
|
||||||
|
imagecolorexact
|
||||||
|
imagecolorexactalpha
|
||||||
|
imagecolormatch
|
||||||
|
imagecolorresolve
|
||||||
|
imagecolorresolvealpha
|
||||||
|
imagecolorset
|
||||||
|
imagecolorsforindex
|
||||||
|
imagecolorstotal
|
||||||
|
imagecolortransparent
|
||||||
|
imageconvolution
|
||||||
|
imagecopy
|
||||||
|
imagecopymerge
|
||||||
|
imagecopymergegray
|
||||||
|
imagecopyresampled
|
||||||
|
imagecopyresized
|
||||||
|
imagecreate
|
||||||
|
imagecreatefromgd
|
||||||
|
imagecreatefromgd2
|
||||||
|
imagecreatefromgd2part
|
||||||
|
imagecreatefromgif
|
||||||
|
imagecreatefromjpeg
|
||||||
|
imagecreatefrompng
|
||||||
|
imagecreatefromstring
|
||||||
|
imagecreatefromwbmp
|
||||||
|
imagecreatefromxbm
|
||||||
|
imagecreatetruecolor
|
||||||
|
imagedashedline
|
||||||
|
imagedestroy
|
||||||
|
imageellipse
|
||||||
|
imagefill
|
||||||
|
imagefilledarc
|
||||||
|
imagefilledellipse
|
||||||
|
imagefilledpolygon
|
||||||
|
imagefilledrectangle
|
||||||
|
imagefilltoborder
|
||||||
|
imagefilter
|
||||||
|
imagefontheight
|
||||||
|
imagefontwidth
|
||||||
|
imagegammacorrect
|
||||||
|
imagegd
|
||||||
|
imagegd2
|
||||||
|
imagegif
|
||||||
|
imageinterlace
|
||||||
|
imageistruecolor
|
||||||
|
imagejpeg
|
||||||
|
imagelayereffect
|
||||||
|
imageline
|
||||||
|
imageloadfont
|
||||||
|
imagepalettecopy
|
||||||
|
imagepng
|
||||||
|
imagepolygon
|
||||||
|
imagerectangle
|
||||||
|
imagerotate
|
||||||
|
imagesavealpha
|
||||||
|
imagesetbrush
|
||||||
|
imagesetpixel
|
||||||
|
imagesetstyle
|
||||||
|
imagesetthickness
|
||||||
|
imagesettile
|
||||||
|
imagestring
|
||||||
|
imagestringup
|
||||||
|
imagesx
|
||||||
|
imagesy
|
||||||
|
imagetruecolortopalette
|
||||||
|
imagetypes
|
||||||
|
imagewbmp
|
||||||
|
imagexbm
|
||||||
|
ldap_connect
|
||||||
|
ldap_close
|
||||||
|
ldap_bind
|
||||||
|
ldap_sasl_bind
|
||||||
|
ldap_unbind
|
||||||
|
ldap_read
|
||||||
|
ldap_list
|
||||||
|
ldap_search
|
||||||
|
ldap_free_result
|
||||||
|
ldap_count_entries
|
||||||
|
ldap_first_entry
|
||||||
|
ldap_next_entry
|
||||||
|
ldap_get_entries
|
||||||
|
ldap_first_attribute
|
||||||
|
ldap_next_attribute
|
||||||
|
ldap_get_attributes
|
||||||
|
ldap_get_values
|
||||||
|
ldap_get_values_len
|
||||||
|
ldap_get_dn
|
||||||
|
ldap_explode_dn
|
||||||
|
ldap_dn2ufn
|
||||||
|
ldap_add
|
||||||
|
ldap_delete
|
||||||
|
ldap_modify
|
||||||
|
ldap_mod_add
|
||||||
|
ldap_mod_replace
|
||||||
|
ldap_mod_del
|
||||||
|
ldap_errno
|
||||||
|
ldap_err2str
|
||||||
|
ldap_error
|
||||||
|
ldap_compare
|
||||||
|
ldap_sort
|
||||||
|
ldap_rename
|
||||||
|
ldap_get_option
|
||||||
|
ldap_set_option
|
||||||
|
ldap_first_reference
|
||||||
|
ldap_next_reference
|
||||||
|
ldap_parse_reference
|
||||||
|
ldap_parse_result
|
||||||
|
ldap_start_tls
|
||||||
|
ldap_set_rebind_proc
|
||||||
|
ldap_control_paged_result
|
||||||
|
ldap_control_paged_result_response
|
||||||
|
pcntl_fork
|
||||||
|
pcntl_waitpid
|
||||||
|
pcntl_wait
|
||||||
|
pcntl_signal
|
||||||
|
pcntl_signal_dispatch
|
||||||
|
pcntl_wifexited
|
||||||
|
pcntl_wifstopped
|
||||||
|
pcntl_wifsignaled
|
||||||
|
pcntl_wexitstatus
|
||||||
|
pcntl_wtermsig
|
||||||
|
pcntl_wstopsig
|
||||||
|
pcntl_exec
|
||||||
|
pcntl_alarm
|
||||||
|
pcntl_get_last_error
|
||||||
|
pcntl_errno
|
||||||
|
pcntl_strerror
|
||||||
|
pcntl_getpriority
|
||||||
|
pcntl_setpriority
|
||||||
|
pcntl_sigprocmask
|
||||||
|
posix_kill
|
||||||
|
posix_getpid
|
||||||
|
posix_getppid
|
||||||
|
posix_getuid
|
||||||
|
posix_setuid
|
||||||
|
posix_geteuid
|
||||||
|
posix_seteuid
|
||||||
|
posix_getgid
|
||||||
|
posix_setgid
|
||||||
|
posix_getegid
|
||||||
|
posix_setegid
|
||||||
|
posix_getgroups
|
||||||
|
posix_getlogin
|
||||||
|
posix_getpgrp
|
||||||
|
posix_setsid
|
||||||
|
posix_setpgid
|
||||||
|
posix_getpgid
|
||||||
|
posix_getsid
|
||||||
|
posix_uname
|
||||||
|
posix_times
|
||||||
|
posix_ctermid
|
||||||
|
posix_ttyname
|
||||||
|
posix_isatty
|
||||||
|
posix_getcwd
|
||||||
|
posix_mkfifo
|
||||||
|
posix_mknod
|
||||||
|
posix_access
|
||||||
|
posix_getgrnam
|
||||||
|
posix_getgrgid
|
||||||
|
posix_getpwnam
|
||||||
|
posix_getpwuid
|
||||||
|
posix_getrlimit
|
||||||
|
posix_get_last_error
|
||||||
|
posix_errno
|
||||||
|
posix_strerror
|
||||||
|
posix_initgroups
|
||||||
|
socket_accept
|
||||||
|
socket_bind
|
||||||
|
socket_clear_error
|
||||||
|
socket_close
|
||||||
|
socket_connect
|
||||||
|
socket_create
|
||||||
|
socket_create_listen
|
||||||
|
socket_create_pair
|
||||||
|
socket_get_option
|
||||||
|
socket_get_status
|
||||||
|
socket_getopt
|
||||||
|
socket_getpeername
|
||||||
|
socket_getsockname
|
||||||
|
socket_import_stream
|
||||||
|
socket_last_error
|
||||||
|
socket_listen
|
||||||
|
socket_read
|
||||||
|
socket_recv
|
||||||
|
socket_recvfrom
|
||||||
|
socket_select
|
||||||
|
socket_send
|
||||||
|
socket_sendto
|
||||||
|
socket_set_block
|
||||||
|
socket_set_blocking
|
||||||
|
socket_set_nonblock
|
||||||
|
socket_set_option
|
||||||
|
socket_set_timeout
|
||||||
|
socket_setopt
|
||||||
|
socket_shutdown
|
||||||
|
socket_strerror
|
||||||
|
socket_write
|
|
@ -415,6 +415,16 @@ function phutil_symbols_get_builtins() {
|
||||||
$builtin_functions = get_defined_functions();
|
$builtin_functions = get_defined_functions();
|
||||||
$builtin_functions = $builtin_functions['internal'];
|
$builtin_functions = $builtin_functions['internal'];
|
||||||
|
|
||||||
|
// Developers may not have every extension that a library potentially uses
|
||||||
|
// installed. We supplement the list of declared functions with a list of
|
||||||
|
// known extension functions to avoid raising false positives just because
|
||||||
|
// you don't have pcntl, etc.
|
||||||
|
$list = dirname(__FILE__).'/php_extension_functions.txt';
|
||||||
|
$extension_functions = file_get_contents($list);
|
||||||
|
$extension_functions = explode("\n", trim($extension_functions));
|
||||||
|
|
||||||
|
$builtin_functions = array_merge($builtin_functions, $extension_functions);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'class' => array_fill_keys($builtin_classes, true) + array(
|
'class' => array_fill_keys($builtin_classes, true) + array(
|
||||||
'PhutilBootloader' => true,
|
'PhutilBootloader' => true,
|
||||||
|
|
Loading…
Reference in a new issue