|
57 | 57 | #define JSON_PARSER_DEFAULT_DEPTH 512
|
58 | 58 | #endif
|
59 | 59 |
|
| 60 | +/**************************************** |
| 61 | + Protocol parameters |
| 62 | +****************************************/ |
| 63 | +#define MEMC_OBJECT_KEY_MAX_LENGTH 250 |
| 64 | + |
60 | 65 | /****************************************
|
61 | 66 | Custom options
|
62 | 67 | ****************************************/
|
@@ -576,7 +581,7 @@ static void php_memc_get_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool by_key)
|
576 | 581 | MEMC_METHOD_FETCH_OBJECT;
|
577 | 582 | i_obj->rescode = MEMCACHED_SUCCESS;
|
578 | 583 |
|
579 |
| - if (key_len == 0 || strchr(key, ' ')) { |
| 584 | + if (key_len == 0 || key_len > MEMC_OBJECT_KEY_MAX_LENGTH || strchr(key, ' ') || strchr(key, '\n')) { |
580 | 585 | i_obj->rescode = MEMCACHED_BAD_KEY_PROVIDED;
|
581 | 586 | RETURN_FROM_GET;
|
582 | 587 | }
|
@@ -1448,7 +1453,7 @@ static void php_memc_store_impl(INTERNAL_FUNCTION_PARAMETERS, int op, zend_bool
|
1448 | 1453 | MEMC_METHOD_FETCH_OBJECT;
|
1449 | 1454 | i_obj->rescode = MEMCACHED_SUCCESS;
|
1450 | 1455 |
|
1451 |
| - if (key_len == 0 || strchr(key, ' ')) { |
| 1456 | + if (key_len == 0 || key_len > MEMC_OBJECT_KEY_MAX_LENGTH || strchr(key, ' ') || strchr(key, '\n')) { |
1452 | 1457 | i_obj->rescode = MEMCACHED_BAD_KEY_PROVIDED;
|
1453 | 1458 | RETURN_FALSE;
|
1454 | 1459 | }
|
@@ -1599,7 +1604,7 @@ static void php_memc_cas_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool by_key)
|
1599 | 1604 | MEMC_METHOD_FETCH_OBJECT;
|
1600 | 1605 | i_obj->rescode = MEMCACHED_SUCCESS;
|
1601 | 1606 |
|
1602 |
| - if (key_len == 0 || strchr(key, ' ')) { |
| 1607 | + if (key_len == 0 || key_len > MEMC_OBJECT_KEY_MAX_LENGTH || strchr(key, ' ') || strchr(key, '\n')) { |
1603 | 1608 | i_obj->rescode = MEMCACHED_BAD_KEY_PROVIDED;
|
1604 | 1609 | RETURN_FALSE;
|
1605 | 1610 | }
|
@@ -1717,7 +1722,7 @@ static void php_memc_delete_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool by_key)
|
1717 | 1722 | MEMC_METHOD_FETCH_OBJECT;
|
1718 | 1723 | i_obj->rescode = MEMCACHED_SUCCESS;
|
1719 | 1724 |
|
1720 |
| - if (key_len == 0 || strchr(key, ' ')) { |
| 1725 | + if (key_len == 0 || key_len > MEMC_OBJECT_KEY_MAX_LENGTH || strchr(key, ' ') || strchr(key, '\n')) { |
1721 | 1726 | i_obj->rescode = MEMCACHED_BAD_KEY_PROVIDED;
|
1722 | 1727 | RETURN_FALSE;
|
1723 | 1728 | }
|
@@ -1817,7 +1822,7 @@ static void php_memc_incdec_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool by_key,
|
1817 | 1822 | MEMC_METHOD_FETCH_OBJECT;
|
1818 | 1823 | i_obj->rescode = MEMCACHED_SUCCESS;
|
1819 | 1824 |
|
1820 |
| - if (key_len == 0 || strchr(key, ' ')) { |
| 1825 | + if (key_len == 0 || key_len > MEMC_OBJECT_KEY_MAX_LENGTH || strchr(key, ' ') || strchr(key, '\n')) { |
1821 | 1826 | i_obj->rescode = MEMCACHED_BAD_KEY_PROVIDED;
|
1822 | 1827 | RETURN_FALSE;
|
1823 | 1828 | }
|
|
0 commit comments