diff options
Diffstat (limited to 'execute.c')
| -rw-r--r-- | execute.c | 118 |
1 files changed, 78 insertions, 40 deletions
| @@ -880,7 +880,7 @@ int ih_querycheck(IH_HANDLER_PARAMS) | |||
| 880 | return (0); | 880 | return (0); |
| 881 | } | 881 | } |
| 882 | 882 | ||
| 883 | if ((long) ih->arg1) { | 883 | if ((long) ih->arg2) { |
| 884 | mysql_extension = 1; | 884 | mysql_extension = 1; |
| 885 | } | 885 | } |
| 886 | 886 | ||
| @@ -892,6 +892,7 @@ int ih_querycheck(IH_HANDLER_PARAMS) | |||
| 892 | } | 892 | } |
| 893 | len = Z_STRLEN_P(backup); | 893 | len = Z_STRLEN_P(backup); |
| 894 | query = Z_STRVAL_P(backup); | 894 | query = Z_STRVAL_P(backup); |
| 895 | SDEBUG("SQL |%s|", query); | ||
| 895 | 896 | ||
| 896 | s = query; | 897 | s = query; |
| 897 | e = s+len; | 898 | e = s+len; |
| @@ -1552,9 +1553,9 @@ static int ih_getrandmax(IH_HANDLER_PARAMS) | |||
| 1552 | } | 1553 | } |
| 1553 | 1554 | ||
| 1554 | internal_function_handler ihandlers[] = { | 1555 | internal_function_handler ihandlers[] = { |
| 1555 | { "preg_replace", ih_preg_replace, NULL, NULL, NULL }, | 1556 | { "preg_replace", ih_preg_replace, NULL, NULL, NULL }, |
| 1556 | { "mail", ih_mail, NULL, NULL, NULL }, | 1557 | { "mail", ih_mail, NULL, NULL, NULL }, |
| 1557 | { "symlink", ih_symlink, NULL, NULL, NULL }, | 1558 | { "symlink", ih_symlink, NULL, NULL, NULL }, |
| 1558 | 1559 | ||
| 1559 | { "srand", ih_srand, NULL, NULL, NULL }, | 1560 | { "srand", ih_srand, NULL, NULL, NULL }, |
| 1560 | { "mt_srand", ih_mt_srand, NULL, NULL, NULL }, | 1561 | { "mt_srand", ih_mt_srand, NULL, NULL, NULL }, |
| @@ -1563,49 +1564,86 @@ internal_function_handler ihandlers[] = { | |||
| 1563 | { "getrandmax", ih_getrandmax, NULL, NULL, NULL }, | 1564 | { "getrandmax", ih_getrandmax, NULL, NULL, NULL }, |
| 1564 | { "mt_getrandmax", ih_getrandmax, NULL, NULL, NULL }, | 1565 | { "mt_getrandmax", ih_getrandmax, NULL, NULL, NULL }, |
| 1565 | 1566 | ||
| 1566 | { "ocilogon", ih_fixusername, (void *)1, NULL, NULL }, | 1567 | { "function_exists", ih_function_exists, NULL, NULL, NULL }, |
| 1567 | { "ociplogon", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1568 | { "ocinlogon", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1569 | { "oci_connect", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1570 | { "oci_pconnect", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1571 | { "oci_new_connect", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1572 | 1568 | ||
| 1573 | { "fbsql_change_user", ih_fixusername, (void *)1, NULL, NULL }, | 1569 | /* Mysqli */ |
| 1574 | { "fbsql_connect", ih_fixusername, (void *)2, NULL, NULL }, | 1570 | { "mysqli::mysqli", ih_fixusername, (void *)2, NULL, NULL }, |
| 1575 | { "fbsql_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | 1571 | { "mysqli_connect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1576 | 1572 | { "mysqli::real_connect", ih_fixusername, (void *)2, NULL, NULL }, | |
| 1577 | { "function_exists", ih_function_exists, NULL, NULL, NULL }, | 1573 | { "mysqli_real_connect", ih_fixusername, (void *)3, NULL, NULL }, |
| 1574 | { "mysqli_change_user", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1575 | { "mysqli::change_user", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1576 | |||
| 1577 | { "mysqli::query", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1578 | { "mysqli_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1579 | { "mysqli::multi_query", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1580 | { "mysqli_multi_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1581 | { "mysqli::prepare", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1582 | { "mysqli_prepare", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1583 | { "mysqli::real_query", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1584 | { "mysqli_real_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1585 | { "mysqli::send_query", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1586 | { "mysqli_send_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1587 | // removed in PHP 5.3 | ||
| 1588 | { "mysqli_master_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1589 | { "mysqli_slave_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1590 | // ---- | ||
| 1591 | |||
| 1592 | /* Mysql API - deprecated in PHP 5.5 */ | ||
| 1593 | { "mysql_connect", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1594 | { "mysql_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1595 | { "mysql_query", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1596 | { "mysql_db_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1597 | { "mysql_unbuffered_query", ih_querycheck, (void *)1, (void *)1, NULL }, | ||
| 1578 | 1598 | ||
| 1579 | { "ifx_connect", ih_fixusername, (void *)2, NULL, NULL }, | 1599 | /* MaxDB */ |
| 1580 | { "ifx_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | 1600 | { "maxdb::maxdb", ih_fixusername, (void *)2, NULL, NULL }, |
| 1601 | { "maxdb_connect", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1602 | { "maxdb::real_connect", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1603 | { "maxdb_real_connect", ih_fixusername, (void *)3, NULL, NULL }, | ||
| 1604 | { "maxdb::change_user", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1605 | { "maxdb_change_user", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1606 | |||
| 1607 | { "maxdb_master_query", ih_querycheck, (void *)2, NULL, NULL }, | ||
| 1608 | { "maxdb::multi_query", ih_querycheck, (void *)1, NULL, NULL }, | ||
| 1609 | { "maxdb_multi_query", ih_querycheck, (void *)2, NULL, NULL }, | ||
| 1610 | { "maxdb::query", ih_querycheck, (void *)1, NULL, NULL }, | ||
| 1611 | { "maxdb_query", ih_querycheck, (void *)2, NULL, NULL }, | ||
| 1612 | { "maxdb::real_query", ih_querycheck, (void *)1, NULL, NULL }, | ||
| 1613 | { "maxdb_real_query", ih_querycheck, (void *)2, NULL, NULL }, | ||
| 1614 | { "maxdb::send_query", ih_querycheck, (void *)1, NULL, NULL }, | ||
| 1615 | { "maxdb_send_query", ih_querycheck, (void *)2, NULL, NULL }, | ||
| 1616 | { "maxdb::prepare", ih_querycheck, (void *)1, NULL, NULL }, | ||
| 1617 | { "maxdb_prepare", ih_querycheck, (void *)2, NULL, NULL }, | ||
| 1581 | 1618 | ||
| 1582 | { "ibase_connect", ih_fixusername, (void *)2, NULL, NULL }, | 1619 | /* Oracle OCI8 */ |
| 1583 | { "ibase_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | 1620 | { "ocilogon", ih_fixusername, (void *)1, NULL, NULL }, |
| 1621 | { "ociplogon", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1622 | { "ocinlogon", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1623 | { "oci_connect", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1624 | { "oci_pconnect", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1625 | { "oci_new_connect", ih_fixusername, (void *)1, NULL, NULL }, | ||
| 1584 | 1626 | ||
| 1585 | { "maxdb", ih_fixusername, (void *)2, NULL, NULL }, | 1627 | /* FrontBase */ |
| 1586 | { "maxdb_change_user", ih_fixusername, (void *)2, NULL, NULL }, | 1628 | { "fbsql_connect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1587 | { "maxdb_connect", ih_fixusername, (void *)2, NULL, NULL }, | 1629 | { "fbsql_pconnect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1588 | { "maxdb_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | 1630 | { "fbsql_change_user", ih_fixusername, (void *)1, NULL, NULL }, |
| 1589 | { "maxdb_real_connect", ih_fixusername, (void *)3, NULL, NULL }, | 1631 | { "fbsql_username", ih_fixusername, (void *)2, NULL, NULL }, |
| 1590 | 1632 | ||
| 1591 | { "mssql_connect", ih_fixusername, (void *)2, NULL, NULL }, | 1633 | /* Informix */ |
| 1592 | { "mssql_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | 1634 | { "ifx_connect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1635 | { "ifx_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | ||
| 1593 | 1636 | ||
| 1594 | { "mysql_query", ih_querycheck, (void *)1, (void *)1, NULL }, | 1637 | /* Firebird/InterBase */ |
| 1595 | { "mysql_db_query", ih_querycheck, (void *)2, (void *)1, NULL }, | 1638 | { "ibase_connect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1596 | { "mysql_unbuffered_query", ih_querycheck, (void *)1, (void *)1, NULL }, | 1639 | { "ibase_pconnect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1597 | { "mysqli_query", ih_querycheck, (void *)2, (void *)1, NULL }, | 1640 | { "ibase_service_attach", ih_fixusername, (void *)2, NULL, NULL }, |
| 1598 | { "mysqli_real_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1599 | { "mysqli_send_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1600 | { "mysqli_master_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1601 | { "mysqli_slave_query", ih_querycheck, (void *)2, (void *)1, NULL }, | ||
| 1602 | 1641 | ||
| 1603 | { "mysqli", ih_fixusername, (void *)2, NULL, NULL }, | 1642 | /* Microsoft SQL Server */ |
| 1604 | { "mysql_connect", ih_fixusername, (void *)2, NULL, NULL }, | 1643 | { "mssql_connect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1605 | { "mysql_pconnect", ih_fixusername, (void *)2, NULL, NULL }, | 1644 | { "mssql_pconnect", ih_fixusername, (void *)2, NULL, NULL }, |
| 1606 | { "mysqli_change_user", ih_fixusername, (void *)2, NULL, NULL }, | 1645 | |
| 1607 | { "mysql_real_connect", ih_fixusername, (void *)3, NULL, NULL }, | 1646 | { NULL, NULL, NULL, NULL, NULL } |
| 1608 | { NULL, NULL, NULL, NULL, NULL } | ||
| 1609 | }; | 1647 | }; |
| 1610 | 1648 | ||
| 1611 | #define FUNCTION_WARNING() zend_error(E_WARNING, "%s() has been disabled for security reasons", get_active_function_name(TSRMLS_C)); | 1649 | #define FUNCTION_WARNING() zend_error(E_WARNING, "%s() has been disabled for security reasons", get_active_function_name(TSRMLS_C)); |
