]> granicus.if.org Git - php/commitdiff
Use ZEND_THROWS() during ZPP in enchant, exif, fileinfo, filter, and FTP extensions
authorMáté Kocsis <kocsismate@woohoolabs.com>
Mon, 30 Dec 2019 17:15:44 +0000 (18:15 +0100)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Mon, 30 Dec 2019 23:21:37 +0000 (00:21 +0100)
ext/enchant/enchant.c
ext/exif/exif.c
ext/fileinfo/fileinfo.c
ext/filter/filter.c
ext/ftp/php_ftp.c

index 06566ce2dffdd3b8d1d1d35945471829a63efa2c..7c5f35f34d07f8c1172464cafba01dee3882d671 100644 (file)
@@ -293,7 +293,7 @@ PHP_FUNCTION(enchant_broker_init)
        EnchantBroker *pbroker;
 
        if (zend_parse_parameters_none() == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        pbroker = enchant_broker_init();
@@ -319,7 +319,7 @@ PHP_FUNCTION(enchant_broker_free)
        enchant_broker *pbroker;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
        PHP_ENCHANT_GET_BROKER;
 
@@ -337,7 +337,7 @@ PHP_FUNCTION(enchant_broker_get_error)
        char *msg;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -362,7 +362,7 @@ PHP_FUNCTION(enchant_broker_set_dict_path)
        size_t value_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rls", &broker, &dict_type, &value, &value_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (!value_len) {
@@ -401,7 +401,7 @@ PHP_FUNCTION(enchant_broker_get_dict_path)
        char *value;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &broker, &dict_type) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -456,7 +456,7 @@ PHP_FUNCTION(enchant_broker_list_dicts)
        enchant_broker *pbroker;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -479,7 +479,7 @@ PHP_FUNCTION(enchant_broker_request_dict)
        int pos;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &broker, &tag, &taglen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -527,7 +527,7 @@ PHP_FUNCTION(enchant_broker_request_pwl_dict)
        int pos;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rp", &broker, &pwl, &pwllen) == FAILURE) {
-               return;
+               RETURN_THROWS()
        }
 
        if (php_check_open_basedir(pwl)) {
@@ -569,7 +569,7 @@ PHP_FUNCTION(enchant_broker_free_dict)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -589,7 +589,7 @@ PHP_FUNCTION(enchant_broker_dict_exists)
        enchant_broker * pbroker;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &broker, &tag, &taglen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -615,7 +615,7 @@ PHP_FUNCTION(enchant_broker_set_ordering)
        enchant_broker * pbroker;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss", &broker, &ptag, &ptaglen, &pordering, &porderinglen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -634,7 +634,7 @@ PHP_FUNCTION(enchant_broker_describe)
        enchant_broker * pbroker;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_BROKER;
@@ -654,7 +654,7 @@ PHP_FUNCTION(enchant_dict_quick_check)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|z", &dict, &word, &wordlen, &sugg) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (sugg) {
@@ -702,7 +702,7 @@ PHP_FUNCTION(enchant_dict_check)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -724,7 +724,7 @@ PHP_FUNCTION(enchant_dict_suggest)
        size_t n_sugg_st;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -754,7 +754,7 @@ PHP_FUNCTION(enchant_dict_add_to_personal)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -773,7 +773,7 @@ PHP_FUNCTION(enchant_dict_add_to_session)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -792,7 +792,7 @@ PHP_FUNCTION(enchant_dict_is_in_session)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -815,7 +815,7 @@ PHP_FUNCTION(enchant_dict_store_replacement)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss", &dict, &mis, &mislen, &cor, &corlen) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -833,7 +833,7 @@ PHP_FUNCTION(enchant_dict_get_error)
        char *msg;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
@@ -855,7 +855,7 @@ PHP_FUNCTION(enchant_dict_describe)
        enchant_dict *pdict;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        PHP_ENCHANT_GET_DICT;
index 1f90c272449a56c95ffe3c37ac8e68e619e4dc7d..f7339292a489e368982829b8f16d569782e68e1c 100644 (file)
@@ -2689,7 +2689,7 @@ PHP_FUNCTION(exif_tagname)
        char *szTemp;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &tag) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        szTemp = exif_get_tagname(tag, tag_table_IFD);
@@ -4672,7 +4672,7 @@ PHP_FUNCTION(exif_imagetype)
        int itype = 0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "p", &imagefile, &imagefile_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        stream = php_stream_open_wrapper(imagefile, "rb", IGNORE_PATH|REPORT_ERRORS, NULL);
index 27a9da4476b68d2ef57df5fc21af12cda6029a5b..f523e02c2293e82156b7a4deebc6383ae3fe152f 100644 (file)
@@ -243,7 +243,7 @@ PHP_FUNCTION(finfo_open)
        zend_error_handling zeh;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "|lp", &options, &file, &file_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (object) {
@@ -330,7 +330,7 @@ PHP_FUNCTION(finfo_close)
        zval *zfinfo;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zfinfo) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((finfo = (php_fileinfo *)zend_fetch_resource(Z_RES_P(zfinfo), "file_info", le_fileinfo)) == NULL) {
@@ -354,12 +354,12 @@ PHP_FUNCTION(finfo_set_flags)
 
        if (object) {
                if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &options) == FAILURE) {
-                       return;
+                       RETURN_THROWS();
                }
                FILEINFO_FROM_OBJECT(finfo, object);
        } else {
                if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &zfinfo, &options) == FAILURE) {
-                       return;
+                       RETURN_THROWS();
                }
                if ((finfo = (php_fileinfo *)zend_fetch_resource(Z_RES_P(zfinfo), "file_info", le_fileinfo)) == NULL) {
                        return;
@@ -394,7 +394,7 @@ static void _php_finfo_get_type(INTERNAL_FUNCTION_PARAMETERS, int mode, int mime
 
                /* mime_content_type(..) emulation */
                if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &what) == FAILURE) {
-                       return;
+                       RETURN_THROWS();
                }
 
                switch (Z_TYPE_P(what)) {
@@ -420,13 +420,13 @@ static void _php_finfo_get_type(INTERNAL_FUNCTION_PARAMETERS, int mode, int mime
                }
        } else if (object) {
                if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|lr!", &buffer, &buffer_len, &options, &zcontext) == FAILURE) {
-                       return;
+                       RETURN_THROWS();
                }
                FILEINFO_FROM_OBJECT(finfo, object);
                magic = finfo->magic;
        } else {
                if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|lr!", &zfinfo, &buffer, &buffer_len, &options, &zcontext) == FAILURE) {
-                       return;
+                       RETURN_THROWS();
                }
                if ((finfo = (php_fileinfo *)zend_fetch_resource(Z_RES_P(zfinfo), "file_info", le_fileinfo)) == NULL) {
                        return;
index d91f050a95fe70ed32488274a8c1798dd924388f..996308a4181de9f573bb78a2a786445b477682ed 100644 (file)
@@ -530,7 +530,7 @@ PHP_FUNCTION(filter_has_var)
        zval        *array_ptr = NULL;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "lS", &arg, &var) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        array_ptr = php_filter_get_storage(arg);
@@ -674,7 +674,7 @@ PHP_FUNCTION(filter_input)
        zend_string *var;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "lS|lz", &fetch_from, &var, &filter, &filter_args) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (!PHP_FILTER_ID_EXISTS(filter)) {
@@ -728,7 +728,7 @@ PHP_FUNCTION(filter_var)
        zval *filter_args = NULL, *data;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|lz", &data, &filter, &filter_args) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (!PHP_FILTER_ID_EXISTS(filter)) {
@@ -751,7 +751,7 @@ PHP_FUNCTION(filter_input_array)
        zend_bool add_empty = 1;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|zb",  &fetch_from, &op, &add_empty) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (op && (Z_TYPE_P(op) != IS_ARRAY) && !(Z_TYPE_P(op) == IS_LONG && PHP_FILTER_ID_EXISTS(Z_LVAL_P(op)))) {
@@ -796,7 +796,7 @@ PHP_FUNCTION(filter_var_array)
        zend_bool add_empty = 1;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "a|zb",  &array_input, &op, &add_empty) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (op && (Z_TYPE_P(op) != IS_ARRAY) && !(Z_TYPE_P(op) == IS_LONG && PHP_FILTER_ID_EXISTS(Z_LVAL_P(op)))) {
@@ -814,7 +814,7 @@ PHP_FUNCTION(filter_list)
        int i, size = sizeof(filter_list) / sizeof(filter_list_entry);
 
        if (zend_parse_parameters_none() == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        array_init(return_value);
@@ -834,7 +834,7 @@ PHP_FUNCTION(filter_id)
        char *filter;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &filter, &filter_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        for (i = 0; i < size; ++i) {
index 0b38c251f68695c34a4f72523dc6b1de49ef7764..acc7bf82f75eb560fde9cdfec58b47d92e80f275 100644 (file)
@@ -165,7 +165,7 @@ PHP_FUNCTION(ftp_connect)
        zend_long               timeout_sec = FTP_DEFAULT_TIMEOUT;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|ll", &host, &host_len, &port, &timeout_sec) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (timeout_sec <= 0) {
@@ -202,7 +202,7 @@ PHP_FUNCTION(ftp_ssl_connect)
        zend_long               timeout_sec = FTP_DEFAULT_TIMEOUT;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|ll", &host, &host_len, &port, &timeout_sec) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if (timeout_sec <= 0) {
@@ -236,7 +236,7 @@ PHP_FUNCTION(ftp_login)
        size_t user_len, pass_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss", &z_ftp, &user, &user_len, &pass, &pass_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -262,7 +262,7 @@ PHP_FUNCTION(ftp_pwd)
        const char      *pwd;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &z_ftp) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -286,7 +286,7 @@ PHP_FUNCTION(ftp_cdup)
        ftpbuf_t        *ftp;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &z_ftp) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -312,7 +312,7 @@ PHP_FUNCTION(ftp_chdir)
        size_t                  dir_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &dir, &dir_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -339,7 +339,7 @@ PHP_FUNCTION(ftp_exec)
        size_t                  cmd_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &cmd, &cmd_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -366,7 +366,7 @@ PHP_FUNCTION(ftp_raw)
        size_t                  cmd_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &cmd, &cmd_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -389,7 +389,7 @@ PHP_FUNCTION(ftp_mkdir)
        size_t          dir_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &dir, &dir_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -416,7 +416,7 @@ PHP_FUNCTION(ftp_rmdir)
        size_t          dir_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &dir, &dir_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -444,7 +444,7 @@ PHP_FUNCTION(ftp_chmod)
        zend_long               mode;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rlp", &z_ftp, &mode, &filename, &filename_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -470,7 +470,7 @@ PHP_FUNCTION(ftp_alloc)
        zend_string     *response = NULL;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl|z", &z_ftp, &size, &zresponse) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -501,7 +501,7 @@ PHP_FUNCTION(ftp_nlist)
        size_t          dir_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rp", &z_ftp, &dir, &dir_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -532,7 +532,7 @@ PHP_FUNCTION(ftp_rawlist)
        zend_bool       recursive = 0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|b", &z_ftp, &dir, &dir_len, &recursive) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -563,7 +563,7 @@ PHP_FUNCTION(ftp_mlsd)
        zval            entry;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &dir, &dir_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -598,7 +598,7 @@ PHP_FUNCTION(ftp_systype)
        const char      *syst;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &z_ftp) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -627,7 +627,7 @@ PHP_FUNCTION(ftp_fget)
        zend_long               mode=FTPTYPE_IMAGE, resumepos=0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rrs|ll", &z_ftp, &z_file, &file, &file_len, &mode, &resumepos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -673,7 +673,7 @@ PHP_FUNCTION(ftp_nb_fget)
        zend_long               mode=FTPTYPE_IMAGE, resumepos=0, ret;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rrs|ll", &z_ftp, &z_file, &file, &file_len, &mode, &resumepos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -719,7 +719,7 @@ PHP_FUNCTION(ftp_pasv)
        zend_bool       pasv;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rb", &z_ftp, &pasv) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -747,7 +747,7 @@ PHP_FUNCTION(ftp_get)
        zend_long               mode=FTPTYPE_IMAGE, resumepos=0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rpp|ll", &z_ftp, &local, &local_len, &remote, &remote_len, &mode, &resumepos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -813,7 +813,7 @@ PHP_FUNCTION(ftp_nb_get)
        zend_long               mode=FTPTYPE_IMAGE, resumepos=0;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss|ll", &z_ftp, &local, &local_len, &remote, &remote_len, &mode, &resumepos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -881,7 +881,7 @@ PHP_FUNCTION(ftp_nb_continue)
        zend_long               ret;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &z_ftp) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -925,7 +925,7 @@ PHP_FUNCTION(ftp_fput)
        char            *remote;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rsr|ll", &z_ftp, &remote, &remote_len, &z_file, &mode, &startpos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -975,7 +975,7 @@ PHP_FUNCTION(ftp_nb_fput)
        char            *remote;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rsr|ll", &z_ftp, &remote, &remote_len, &z_file, &mode, &startpos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1029,7 +1029,7 @@ PHP_FUNCTION(ftp_put)
        php_stream      *instream;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rpp|ll", &z_ftp, &remote, &remote_len, &local, &local_len, &mode, &startpos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1083,7 +1083,7 @@ PHP_FUNCTION(ftp_append)
        php_stream      *instream;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rpp|l", &z_ftp, &remote, &remote_len, &local, &local_len, &mode) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1119,7 +1119,7 @@ PHP_FUNCTION(ftp_nb_put)
        php_stream      *instream;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rpp|ll", &z_ftp, &remote, &remote_len, &local, &local_len, &mode, &startpos) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1178,11 +1178,11 @@ PHP_FUNCTION(ftp_size)
        size_t          file_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rp", &z_ftp, &file, &file_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
-               return;
+               RETURN_THROWS();
        }
 
        /* get file size */
@@ -1200,7 +1200,7 @@ PHP_FUNCTION(ftp_mdtm)
        size_t          file_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rp", &z_ftp, &file, &file_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1222,7 +1222,7 @@ PHP_FUNCTION(ftp_rename)
        size_t          src_len, dest_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss", &z_ftp, &src, &src_len, &dest, &dest_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1249,7 +1249,7 @@ PHP_FUNCTION(ftp_delete)
        size_t          file_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &file, &file_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1276,7 +1276,7 @@ PHP_FUNCTION(ftp_site)
        size_t          cmd_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &z_ftp, &cmd, &cmd_len) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1301,7 +1301,7 @@ PHP_FUNCTION(ftp_close)
        ftpbuf_t        *ftp;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &z_ftp) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1323,7 +1323,7 @@ PHP_FUNCTION(ftp_set_option)
        ftpbuf_t        *ftp;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rlz", &z_ftp, &option, &z_value) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {
@@ -1379,7 +1379,7 @@ PHP_FUNCTION(ftp_get_option)
        ftpbuf_t        *ftp;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &z_ftp, &option) == FAILURE) {
-               return;
+               RETURN_THROWS();
        }
 
        if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) {