The package rpms/globus-gridftp-server.git has added or updated architecture specific
content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/globus-gridftp-server.git/commit/....
Change:
+%ifarch ppc64le
Thanks.
Full change:
============
commit b0aaa48a6046a7582da7ddf2501f5fe38fef318d
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sat May 28 00:08:03 2022 +0200
New GCT release v6.2.20220524
Drop patches included in the release
diff --git a/globus-gridftp-server-sha256.patch b/globus-gridftp-server-sha256.patch
deleted file mode 100644
index af6e953..0000000
--- a/globus-gridftp-server-sha256.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/gridftp/server/src/test/testcred.cnf.in
b/gridftp/server/src/test/testcred.cnf.in
-index ef12fd8e93..e878b0151a 100644
---- a/gridftp/server/src/test/testcred.cnf.in
-+++ b/gridftp/server/src/test/testcred.cnf.in
-@@ -44,7 +44,7 @@ commonName = supplied
- ####################################################################
- [ req ]
- default_bits = 2048
--default_md = sha1
-+default_md = sha256
- default_keyfile = privkey.pem
- distinguished_name = req_distinguished_name
- attributes = req_attributes
diff --git a/globus-gridftp-server-warn.patch b/globus-gridftp-server-warn.patch
deleted file mode 100644
index 7342511..0000000
--- a/globus-gridftp-server-warn.patch
+++ /dev/null
@@ -1,727 +0,0 @@
-diff --git a/gridftp/server/src/gfs_dynbe_client.c
b/gridftp/server/src/gfs_dynbe_client.c
-index 43870b2649..62134e0a6c 100644
---- a/gridftp/server/src/gfs_dynbe_client.c
-+++ b/gridftp/server/src/gfs_dynbe_client.c
-@@ -172,6 +172,7 @@ main(
- rc = globus_module_activate(GLOBUS_XIO_MODULE);
- if(rc != 0)
- {
-+ result = GLOBUS_FAILURE;
- goto error_activate;
- }
-
-@@ -210,7 +211,7 @@ main(
- tmp32 = htonl(1);
- memcpy(&buffer[GF_DYN_ENTRY_COUNT_NDX], &tmp32, sizeof(uint32_t));
-
-- strncpy((char *) &buffer[GF_DYN_CS_NDX], be_cs, GF_DYN_CS_LEN);
-+ strncpy((char *) &buffer[GF_DYN_CS_NDX], be_cs, GF_DYN_CS_LEN - 1);
-
- result = globus_xio_open(g_xio_handle, reg_cs, NULL);
- if(result != GLOBUS_SUCCESS)
-diff --git a/gridftp/server/src/gfs_gfork_master.c
b/gridftp/server/src/gfs_gfork_master.c
-index b3531e1393..ac49e7d247 100644
---- a/gridftp/server/src/gfs_gfork_master.c
-+++ b/gridftp/server/src/gfs_gfork_master.c
-@@ -1568,7 +1568,7 @@ gfs_l_gfork_backend_xio_open_cb(
- memcpy(&buffer[GF_DYN_AT_ONCE_NDX], &converted_32, sizeof(uint32_t));
- converted_32 = htonl(g_total_cons);
- memcpy(&buffer[GF_DYN_TOTAL_NDX], &converted_32, sizeof(uint32_t));
-- strncpy((char *)&buffer[GF_DYN_CS_NDX], g_be_cs, GF_DYN_CS_LEN);
-+ strncpy((char *)&buffer[GF_DYN_CS_NDX], g_be_cs, GF_DYN_CS_LEN - 1);
-
- result = globus_xio_register_write(
- handle,
-@@ -2041,7 +2041,7 @@ gfs_l_gfork_opts_mem_size(
- int * out_parms_used)
- {
- globus_result_t result;
-- globus_off_t val;
-+ globus_off_t val = 0;
-
- result = gfs_l_gfork_opts_kmgint(opt[0], &val);
- if(result != GLOBUS_SUCCESS)
-diff --git a/gridftp/server/src/globus_gridftp_server.c
b/gridftp/server/src/globus_gridftp_server.c
-index 0aff2fd1d6..cc0ba04b01 100644
---- a/gridftp/server/src/globus_gridftp_server.c
-+++ b/gridftp/server/src/globus_gridftp_server.c
-@@ -535,17 +535,16 @@ globus_l_gfs_spawn_child(
- /* inc the connection count 2 here since we will dec it on this close
- and on the death of the child process */
- globus_gfs_config_inc_int("open_connections_count", 2);
-- globus_mutex_unlock(&globus_l_gfs_mutex);
- result = globus_xio_register_close(
- handle,
- NULL,
- globus_l_gfs_close_cb,
-- NULL);
-+ NULL);
- if(result != GLOBUS_SUCCESS)
- {
-- globus_l_gfs_close_cb(handle, result, NULL);
-- }
-- }
-+ globus_i_gfs_connection_closed();
-+ }
-+ }
-
- GlobusGFSDebugExit();
- return GLOBUS_SUCCESS;
-@@ -613,7 +612,8 @@ globus_l_gfs_ipc_closed(
- }
-
- handle = (globus_xio_handle_t) user_arg;
-- globus_mutex_unlock(&globus_l_gfs_mutex);
-+
-+ globus_mutex_lock(&globus_l_gfs_mutex);
- {
- result = globus_xio_register_close(
- handle,
-diff --git a/gridftp/server/src/globus_i_gfs_config.c
b/gridftp/server/src/globus_i_gfs_config.c
-index 10963bd421..d5ee9a9a70 100644
---- a/gridftp/server/src/globus_i_gfs_config.c
-+++ b/gridftp/server/src/globus_i_gfs_config.c
-@@ -1880,8 +1880,6 @@ globus_l_gfs_config_display_docbook_usage()
-
- for(i = 0; i < option_count; i++)
- {
-- char * shortflag;
-- char * longflag;
- char * value;
- char * defval;
-
-@@ -1909,27 +1907,19 @@ globus_l_gfs_config_display_docbook_usage()
- switch(o->type)
- {
- case GLOBUS_L_GFS_CONFIG_BOOL:
-- shortflag = "-";
-- longflag = "-";
- value = NULL;
- defval = o->int_value ? "TRUE" : "FALSE";
- break;
- case GLOBUS_L_GFS_CONFIG_INT:
-- shortflag = "-";
-- longflag = "-";
- value = "number";
- defval = o->int_value > 0 ?
- globus_common_create_string("%d", o->int_value) : NULL;
- break;
- case GLOBUS_L_GFS_CONFIG_STRING:
-- shortflag = "-";
-- longflag = "-";
- value = "string";
- defval = o->value ? o->value : NULL;
- break;
- default:
-- shortflag = "";
-- longflag = "";
- value = "";
- defval = o->value ? o->value : NULL;
- break;
-@@ -2000,8 +1990,6 @@ globus_l_gfs_config_display_asciidoc_usage()
-
- for(i = 0; i < option_count; i++)
- {
-- char * shortflag;
-- char * longflag;
- char * value;
- char * defval;
-
-@@ -2034,27 +2022,19 @@ globus_l_gfs_config_display_asciidoc_usage()
- switch(o->type)
- {
- case GLOBUS_L_GFS_CONFIG_BOOL:
-- shortflag = "-";
-- longflag = "-";
- value = NULL;
- defval = o->int_value ? "TRUE" : "FALSE";
- break;
- case GLOBUS_L_GFS_CONFIG_INT:
-- shortflag = "-";
-- longflag = "-";
- value = "number";
- defval = o->int_value > 0 ?
- globus_common_create_string("%d", o->int_value) : NULL;
- break;
- case GLOBUS_L_GFS_CONFIG_STRING:
-- shortflag = "-";
-- longflag = "-";
- value = "string";
- defval = o->value ? o->value : NULL;
- break;
- default:
-- shortflag = "";
-- longflag = "";
- value = "";
- defval = o->value ? o->value : NULL;
- break;
-diff --git a/gridftp/server/src/globus_i_gfs_data.c
b/gridftp/server/src/globus_i_gfs_data.c
-index 785eba2240..0bf0ea4369 100644
---- a/gridftp/server/src/globus_i_gfs_data.c
-+++ b/gridftp/server/src/globus_i_gfs_data.c
-@@ -736,7 +736,7 @@ globus_l_gfs_base64_decode(
- {
- int i;
- int j;
-- int D;
-+ int D = 0;
- char * p;
- GlobusGFSName(globus_l_gfs_base64_decode);
- GlobusGFSDebugEnter();
-@@ -1127,11 +1127,10 @@ globus_l_gfs_data_post_transfer_event_cb(
-
- switch(data_handle->state)
- {
-- /* occurs if the next transfer comand happens before this function
-- is called to switch out of the TE_VALID state
-+ /* occurs if the next transfer command happens before this function
-+ is called to switch out of the TE_VALID state */
- case GLOBUS_L_GFS_DATA_HANDLE_INUSE:
- break;
--*/
-
- case GLOBUS_L_GFS_DATA_HANDLE_TE_PRE_CLOSED:
- /* cant free until destroy cb, put in full closed state */
-@@ -1161,7 +1160,7 @@ globus_l_gfs_data_post_transfer_event_cb(
- case GLOBUS_L_GFS_DATA_HANDLE_VALID:
- break;
-
-- /* havent even gotten a close, how did this happen? */
-+ /* haven't even gotten a close, how did this happen? */
- case GLOBUS_L_GFS_DATA_HANDLE_CLOSED:
- case GLOBUS_L_GFS_DATA_HANDLE_CLOSED_AND_DESTROYED:
- /* these shouldnt be possible */
-@@ -1319,7 +1318,9 @@ globus_i_gfs_get_full_path(
- int cwd_len;
- int sc;
- char * slash = "/";
-+#ifdef WIN32
- char * tmp_path;
-+#endif
- char * norm_path;
- GlobusGFSName(globus_i_gfs_get_full_path);
- GlobusGFSDebugEnter();
-@@ -1482,7 +1483,7 @@ globus_i_gfs_data_check_path(
- char path[MAXPATHLEN];
- globus_list_t * list;
- globus_result_t result = GLOBUS_SUCCESS;
-- globus_l_gfs_alias_ent_t * alias_ent;
-+ globus_l_gfs_alias_ent_t * alias_ent = GLOBUS_NULL;
- char * true_path = GLOBUS_NULL;
- char * start_path;
- int in_path_len;
-@@ -1730,7 +1731,7 @@ globus_i_gfs_data_check_path(
-
- if(!rp_list && ret_path)
- {
-- if(alias_ent->realpath)
-+ if(alias_ent && alias_ent->realpath)
- {
- strncpy(path, alias_ent->realpath,
alias_ent->realpath_len);
- strcpy(path + alias_ent->realpath_len,
-@@ -2489,58 +2490,6 @@ globus_l_gfs_authorize_cb(
- GlobusGFSDebugExit();
- }
-
--static
--globus_result_t
--globus_l_gfs_data_decode_passed_cred(
-- char * encoded_cred,
-- gss_cred_id_t * out_cred)
--{
-- OM_uint32 major_status;
-- OM_uint32 minor_status;
-- gss_buffer_desc buf;
-- gss_cred_id_t cred;
-- globus_result_t res;
-- GlobusGFSName(globus_l_gfs_data_decode_passed_cred);
-- GlobusGFSDebugEnter();
--
-- buf.value = globus_libc_strdup(encoded_cred);
--
-- res = globus_l_gfs_base64_decode(
-- (globus_byte_t *) encoded_cred, buf.value, &buf.length);
-- if(res != GLOBUS_SUCCESS)
-- {
-- globus_free(buf.value);
-- res = GlobusGFSErrorGeneric(
-- "Invalid base64 input for credential.");
-- }
-- else
-- {
-- major_status = gss_import_cred(
-- &minor_status,
-- &cred,
-- GSS_C_NO_OID,
-- 0,
-- &buf,
-- 0,
-- NULL);
-- globus_free(buf.value);
-- if(major_status != GSS_S_COMPLETE)
-- {
-- res = GlobusGFSErrorWrapFailed(
-- "Credential import", minor_status);
-- }
-- else
-- {
-- *out_cred = cred;
-- }
-- }
--
-- GlobusGFSDebugExit();
--
-- return res;
--}
--
--
- /*
- * this is called when writing. if file exists it is a write
- * request, if it does not exists it is a create request
-@@ -2913,14 +2862,12 @@ globus_l_gfs_data_auth_init_cb(
- globus_bool_t destroy_session = GLOBUS_FALSE;
- globus_bool_t destroy_op = GLOBUS_FALSE;
- globus_l_gfs_data_operation_t * op;
-- globus_gfs_session_info_t * session_info;
- globus_gfs_finished_info_t finished_info;
- globus_bool_t ready = GLOBUS_FALSE;
- GlobusGFSName(globus_l_gfs_data_auth_init_cb);
- GlobusGFSDebugEnter();
-
- op = (globus_l_gfs_data_operation_t *) user_arg;
-- session_info = (globus_gfs_session_info_t *) op->info_struct;
-
- memset(&finished_info, '\0', sizeof(globus_gfs_finished_info_t));
- if(result != GLOBUS_SUCCESS)
-@@ -5069,7 +5016,7 @@ globus_l_gfs_base64_encode(
- {
- int i;
- int j;
-- unsigned char c;
-+ unsigned char c = 0;
- for (i=0,j=0; i < in_len; i++)
- {
- switch (i%3)
-@@ -5154,9 +5101,7 @@ void
- globus_i_gfs_data_init()
- {
- char * restrict_path;
-- int rc;
- globus_result_t result;
-- char * driver;
- GlobusGFSName(globus_i_gfs_data_init);
- GlobusGFSDebugEnter();
-
-@@ -5514,11 +5459,11 @@ globus_l_gfs_data_stat_kickout(
- reply.id = bounce_info->op->id;
- reply.result = bounce_info->error ?
- globus_error_put(bounce_info->error) : GLOBUS_SUCCESS;
-- reply.info.stat.stat_array = bounce_info->stat_array;
-- reply.info.stat.stat_count = bounce_info->stat_count;
-- reply.info.stat.uid = bounce_info->op->session_handle->uid;
-+ reply.info.stat.stat_array = bounce_info->stat_array;
-+ reply.info.stat.stat_count = bounce_info->stat_count;
-+ reply.info.stat.uid = (int)bounce_info->op->session_handle->uid;
- reply.info.stat.gid_count = bounce_info->op->session_handle->gid_count;
-- reply.info.stat.gid_array = bounce_info->op->session_handle->gid_array;
-+ reply.info.stat.gid_array = (int
*)bounce_info->op->session_handle->gid_array;
-
- /* pull response code from error */
- if(bounce_info->final_stat && reply.result != GLOBUS_SUCCESS &&
-@@ -5596,7 +5541,7 @@ globus_l_gfs_data_approve_popen(
- char * end;
- char * ptr;
- char * alias;
-- char * prog;
-+ char * prog = NULL;
- char * tmp;
- char * out = NULL;
- globus_bool_t found;
-@@ -5752,7 +5697,7 @@ globus_l_gfs_data_load_stack(
- char * default_stack,
- globus_bool_t subst_io_drivers)
- {
-- char * parsed_driver_string;
-+ char * parsed_driver_string = NULL;
- char * driver_string;
- globus_result_t result = GLOBUS_SUCCESS;
- GlobusGFSName(globus_l_gfs_data_load_stack);
-@@ -5835,7 +5780,7 @@ globus_i_gfs_data_request_command(
- {
- globus_result_t res;
- int rc;
-- globus_gfs_acl_action_t action;
-+ globus_gfs_acl_action_t action = GFS_ACL_ACTION_INIT;
- globus_bool_t call = GLOBUS_TRUE;
- globus_l_gfs_data_operation_t * op;
- globus_result_t result;
-@@ -7621,7 +7566,6 @@ globus_i_gfs_data_request_handle_destroy(
- globus_result_t result;
- globus_l_gfs_data_session_t * session_handle;
- globus_l_gfs_data_handle_t * data_handle;
-- int old_state_dbg;
- GlobusGFSName(globus_i_gfs_data_request_handle_destroy);
- GlobusGFSDebugEnter();
-
-@@ -7643,7 +7587,6 @@ globus_i_gfs_data_request_handle_destroy(
-
- data_handle->destroy_requested = GLOBUS_TRUE;
-
-- old_state_dbg = data_handle->state;
- session_arg = session_handle->session_arg;
- switch(data_handle->state)
- {
-@@ -7783,7 +7726,11 @@ globus_l_gfs_data_hybrid_session_start_cb(
- {
- hybrid_op = op->hybrid_op;
- }
--
-+ else
-+ {
-+ return;
-+ }
-+
- if(op->type == GLOBUS_L_GFS_DATA_INFO_TYPE_PASSIVE)
- {
- if(reply->result != GLOBUS_SUCCESS)
-@@ -7855,12 +7802,8 @@ globus_l_gfs_data_hybrid_session_start_cb(
- hybrid_op->user_arg);
- }
- }
-- if(hybrid_op)
-- {
-- globus_l_gfs_data_operation_destroy(hybrid_op);
-- }
--
-
-+ globus_l_gfs_data_operation_destroy(hybrid_op);
- }
-
- static
-@@ -8710,9 +8653,9 @@ globus_i_gfs_data_request_recv(
- return;
-
- error_module:
-+ globus_gridftp_server_finished_transfer(op, result);
- error_op:
- error_handle:
-- globus_gridftp_server_finished_transfer(op, result);
- GlobusGFSDebugExitWithError();
- }
-
-@@ -8901,9 +8844,9 @@ globus_i_gfs_data_request_send(
- return;
-
- error_module:
-+ globus_gridftp_server_finished_transfer(op, result);
- error_op:
- error_handle:
-- globus_gridftp_server_finished_transfer(op, result);
- GlobusGFSDebugExitWithError();
- }
-
-@@ -9056,7 +8999,7 @@ globus_l_gfs_data_list_stat_cb(
- globus_size_t buffer_len;
- globus_l_gfs_data_stat_bounce_t * bounce_info;
- globus_gfs_stat_info_t * stat_info;
-- globus_result_t result;
-+ globus_result_t result = GLOBUS_SUCCESS;
- globus_gfs_stat_t * stat_array;
- globus_gfs_stat_t stat_temp;
- int stat_count;
-@@ -9735,7 +9678,6 @@ globus_l_gfs_data_begin_cb(
- globus_gfs_event_info_t event_reply;
- globus_gfs_event_info_t event_info;
- globus_l_gfs_data_operation_t * op;
-- globus_l_gfs_data_handle_state_t last_state;
- void * remote_data_arg = NULL;
- GlobusGFSName(globus_l_gfs_data_begin_cb);
- GlobusGFSDebugEnter();
-@@ -9744,7 +9686,6 @@ globus_l_gfs_data_begin_cb(
-
- globus_mutex_lock(&op->session_handle->mutex);
- {
-- last_state = op->state;
- switch(op->state)
- {
- case GLOBUS_L_GFS_DATA_CONNECTING:
-@@ -11915,7 +11856,6 @@ globus_l_gfs_finished_command_kickout(
- globus_bool_t destroy_op = GLOBUS_FALSE;
- void * remote_data_arg = NULL;
- globus_l_gfs_data_operation_t * op;
-- globus_result_t result;
- globus_l_gfs_data_cmd_bounce_t * bounce;
-
- bounce = (globus_l_gfs_data_cmd_bounce_t *) user_arg;
-@@ -12304,7 +12244,6 @@ globus_gridftp_server_finished_stat(
- int i;
- char * base_path;
- globus_gfs_stat_info_t * stat_info;
-- int code;
- GlobusGFSName(globus_gridftp_server_finished_stat);
- GlobusGFSDebugEnter();
-
-@@ -13465,7 +13404,6 @@ globus_gridftp_server_set_checksum_support(
- globus_gfs_operation_t op,
- const char * cksm_str)
- {
-- globus_result_t result;
- GlobusGFSName(globus_gridftp_server_set_checksum_support);
- GlobusGFSDebugEnter();
-
-@@ -14764,7 +14702,7 @@ globus_i_gfs_http_data_parse_request(
- char * d_req = NULL;
- globus_size_t req_len;
- char * line;
-- char * next_line;
-+ char * next_line = NULL;
- char * ptr;
- char * enc_path;
- char * enc_url;
-diff --git a/gridftp/server/src/globus_i_gfs_embed.c
b/gridftp/server/src/globus_i_gfs_embed.c
-index 6ead624b62..b97e89584d 100644
---- a/gridftp/server/src/globus_i_gfs_embed.c
-+++ b/gridftp/server/src/globus_i_gfs_embed.c
-@@ -264,32 +264,26 @@ globus_l_gfs_ipc_closed(
- void * user_arg,
- globus_result_t result)
- {
-- globus_xio_handle_t xio_handle;
- globus_gfs_embed_handle_t handle;
-+ GlobusGFSName(globus_l_gfs_ipc_closed);
-+ GlobusGFSDebugEnter();
-
- if(result != GLOBUS_SUCCESS)
- {
- /* XXX TODO log and error */
- }
-
-- xio_handle = (globus_xio_handle_t) user_arg;
-- globus_mutex_unlock(&handle->mutex);
-+ handle = (globus_gfs_embed_handle_t) user_arg;
-+
-+ globus_mutex_lock(&handle->mutex);
- {
-- result = globus_xio_register_close(
-- xio_handle,
-- NULL,
-- globus_l_gfs_close_cb,
-- handle);
-+ globus_i_gfs_connection_closed(handle);
- }
- globus_mutex_unlock(&handle->mutex);
-
-- if(result != GLOBUS_SUCCESS)
-- {
-- globus_l_gfs_close_cb(xio_handle, result, handle);
-- }
-+ GlobusGFSDebugExit();
- }
-
--
- static
- void
- globus_l_gfs_new_server_cb(
-@@ -380,7 +374,7 @@ globus_l_gfs_new_server_cb(
- &globus_gfs_ipc_default_iface,
- system_handle,
- globus_l_gfs_ipc_closed,
-- xio_handle);
-+ handle);
- }
- else
- {
-diff --git a/gridftp/server/src/globus_i_gfs_ipc.c
b/gridftp/server/src/globus_i_gfs_ipc.c
-index c2d58fbb1b..acf9063740 100644
---- a/gridftp/server/src/globus_i_gfs_ipc.c
-+++ b/gridftp/server/src/globus_i_gfs_ipc.c
-@@ -4137,17 +4137,17 @@ globus_l_gfs_ipc_reply_read_body_cb(
- globus_byte_t * new_buf;
- globus_gfs_ipc_request_t * request = user_arg;
- globus_i_gfs_ipc_handle_t * ipc;
-- globus_gfs_command_info_t * cmd_info;
-- globus_gfs_transfer_info_t * trans_info;
-- globus_gfs_data_info_t * data_info;
-- globus_gfs_stat_info_t * stat_info;
-+ globus_gfs_command_info_t * cmd_info = NULL;
-+ globus_gfs_transfer_info_t * trans_info = NULL;
-+ globus_gfs_data_info_t * data_info = NULL;
-+ globus_gfs_stat_info_t * stat_info = NULL;
- globus_gfs_event_info_t * event_info;
- globus_gfs_operation_type_t type;
-- globus_byte_t * user_buffer;
-- globus_size_t user_buffer_length;
-- int user_buffer_type;
-+ globus_byte_t * user_buffer = NULL;
-+ globus_size_t user_buffer_length = 0;
-+ int user_buffer_type = 0;
- int rc;
-- void * data_arg;
-+ void * data_arg = NULL;
- globus_bool_t process = GLOBUS_FALSE;
- int error_state;
- int no_reply_state;
-@@ -4918,6 +4918,7 @@ globus_l_gfs_ipc_reply_cb(
- goto error_already;
- break;
- case GLOBUS_GFS_IPC_STATE_REPLY_WAIT:
-+ error_state = GLOBUS_GFS_IPC_STATE_REPLY_WAIT;
- break;
- default:
- globus_assert(0 && "memory corruption?");
-diff --git a/gridftp/server/src/globus_i_gfs_log.c
b/gridftp/server/src/globus_i_gfs_log.c
-index bd10c89d2f..837bcfc547 100644
---- a/gridftp/server/src/globus_i_gfs_log.c
-+++ b/gridftp/server/src/globus_i_gfs_log.c
-@@ -85,7 +85,6 @@ globus_i_gfs_log_open()
- int len;
- int ctr;
- char * tag;
-- globus_result_t result;
- globus_reltime_t flush_interval;
- globus_size_t buffer;
- int rc;
-@@ -369,7 +368,6 @@ globus_i_gfs_log_open()
- void
- globus_i_gfs_log_close(void)
- {
-- globus_list_t * list;
- GlobusGFSName(globus_i_gfs_log_close);
- GlobusGFSDebugEnter();
-
-diff --git a/gridftp/server/src/modules/file/globus_gridftp_server_file.c
b/gridftp/server/src/modules/file/globus_gridftp_server_file.c
-index f7b7416826..2ce4c7fae5 100644
---- a/gridftp/server/src/modules/file/globus_gridftp_server_file.c
-+++ b/gridftp/server/src/modules/file/globus_gridftp_server_file.c
-@@ -783,7 +783,6 @@ globus_l_gfs_file_stat(
- globus_gfs_stat_t * stat_array;
- int stat_count = 0;
- int total_stat_count = 0;
-- DIR * dir;
- char basepath[MAXPATHLEN];
- char filename[MAXPATHLEN];
- char symlink_target[MAXPATHLEN];
-@@ -850,6 +849,7 @@ globus_l_gfs_file_stat(
- {
- /* use larger path bufs so we have the full name for err msg */
- int maxpathlen = GLOBUS_MAX(4096, MAXPATHLEN);
-+ DIR * dir;
- struct dirent * dir_entry;
- int i;
- char dir_path[maxpathlen];
-@@ -1046,8 +1046,13 @@ globus_l_gfs_file_stat(
- stat_count = i;
-
- closedir(dir);
--
-+ goto done_fake;
-
-+error_stat2:
-+ globus_l_gfs_file_destroy_stat(stat_array, stat_count);
-+error_alloc2:
-+ closedir(dir);
-+ goto error_open;
- }
- done_fake:
-
-@@ -1090,7 +1095,7 @@ done_fake:
- if(!stat_array)
- {
- result = GlobusGFSErrorMemory("stat_array");
-- goto error_alloc2;
-+ goto error_open;
- }
-
- snprintf(
-@@ -1122,9 +1127,6 @@ done_fake:
- if(slow_listings &&
- (dir_entry->d_type == DT_DIR || dir_entry->d_type == DT_REG))
- {
-- unsigned long h = 0;
-- char * key;
--
- stat_buf = (struct stat)
- {
- .st_mode = S_IRWXU |
-@@ -1186,7 +1188,7 @@ done_fake:
- &stat_array[i], &stat_buf, dir_entry->d_name,
symlink_target, link_stat_buf.st_mode, base_error);
-
- /* set nlink to total files in dir for . entry */
-- if(check_cdir && dir_entry->d_name &&
-+ if(check_cdir &&
- dir_entry->d_name[0] == '.' &&
dir_entry->d_name[1] == '\0')
- {
- check_cdir = GLOBUS_FALSE;
-@@ -1231,7 +1233,7 @@ done_fake:
- if(!stat_array)
- {
- result = GlobusGFSErrorMemory("stat_array");
-- goto error_alloc2;
-+ goto error_open;
- }
-
- stat_count = 0;
-@@ -1253,11 +1255,7 @@ done_fake:
-
- GlobusGFSFileDebugExit();
- return;
--error_stat2:
-- globus_l_gfs_file_destroy_stat(stat_array, stat_count);
--error_alloc2:
-- closedir(dir);
--
-+
- error_open:
- error_alloc1:
- error_stat1:
-@@ -1977,7 +1975,6 @@ globus_l_gfs_file_open_cksm_cb(
- void * user_arg)
- {
- globus_l_gfs_file_cksm_monitor_t * monitor;
-- char * freq;
- GlobusGFSName(globus_l_gfs_file_open_cksm_cb);
- GlobusGFSFileDebugEnter();
-
-diff --git a/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
b/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
-index b4ab1ae246..675932fde9 100644
---- a/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
-+++ b/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
-@@ -402,7 +402,7 @@ globus_l_gfs_remote_select_nodes(
- repo_name = bounce->repo;
- callback = bounce->callback;
- user_arg = bounce->user_arg;
-- nodes_requested = bounce->num_nodes;
-+ nodes_requested = num_nodes;
-
- /* select a new set of nodes */
- result = globus_gfs_brain_select_nodes(
-@@ -920,7 +920,6 @@ globus_l_gfs_ipc_event_cb(
- globus_l_gfs_remote_handle_t * my_handle;
- int i;
- globus_l_gfs_remote_ipc_bounce_t * bounce_info;
-- globus_list_t * list;
- globus_bool_t finish = GLOBUS_FALSE;
- globus_l_gfs_remote_node_info_t * current_node = NULL;
- globus_l_gfs_remote_node_info_t * master_node = NULL;
-@@ -981,8 +980,7 @@ globus_l_gfs_ipc_event_cb(
-
- for(i = 0; i < bounce_info->node_handle->count; i++)
- {
-- node_info = (globus_l_gfs_remote_node_info_t *)
-- globus_list_first(list);
-+ node_info = bounce_info->node_handle->nodes[i];
- info = (globus_gfs_transfer_info_t *) node_info->info;
-
- if(node_info->ipc_handle == ipc_handle)
-diff --git a/gridftp/server/src/test/error_response_test.c
b/gridftp/server/src/test/error_response_test.c
-index a1825b62aa..4a26969cab 100644
---- a/gridftp/server/src/test/error_response_test.c
-+++ b/gridftp/server/src/test/error_response_test.c
-@@ -219,7 +219,6 @@ static
- bool
- test_error_multiline(void)
- {
-- globus_result_t result = GLOBUS_SUCCESS;
- globus_object_t *err = NULL;
- char *msg = NULL;
- char *ftp_str = NULL;
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index e471c83..bff78e1 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -8,8 +8,8 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
-Version: 13.22
-Release: 12%{?dist}
+Version: 13.24
+Release: 1%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -20,13 +20,6 @@ Source2: globus-gridftp-sshftp.service
Source3: %{name}
Source4: globus-gridftp-sshftp
Source8: README
-# Use sha256 hash when generating test certificates
-#
https://github.com/gridcf/gct/pull/178
-Patch0: %{name}-sha256.patch
-# Fix some compiler warnings
-# Fix unbalanced mutex lock/unlock
-#
https://github.com/gridcf/gct/pull/179
-Patch1: %{name}-warn.patch
BuildRequires: make
BuildRequires: gcc
@@ -121,8 +114,6 @@ Globus GridFTP Server Development Files
%prep
%setup -q -n %{_name}-%{version}
-%patch0 -p4
-%patch1 -p4
%build
# Reduce overlinking
@@ -254,6 +245,10 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Wed May 25 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.24-1
+- New GCT release v6.2.20220524
+- Drop patches included in the release
+
* Mon Mar 14 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-12
- Put back mutex fix
diff --git a/sources b/sources
index 6e5d65b..c60c8d5 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (globus_gridftp_server-13.22.tar.gz) =
645058f2a9ce1027ac1f780af91f9eef7ecffab15977336bbb03ea1b82ac38e07325d8f5f92a3fb3c5c317a9a5c8dc473c294a94fbf9fa860c77d25249c70705
+SHA512 (globus_gridftp_server-13.24.tar.gz) =
ee2d45fe7de7daf6005f9456c4aba151aba948ab1ffc419f5942958bb6fe79d8eadf2c2673735dca3c7b30e8450a40b269488c24154fb1fbff1cf90568f09d99
commit 2282544e60cac3833d34880e2e8ef8ca8e400bea
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Mon Mar 14 19:18:28 2022 +0100
Put back mutex fix
diff --git a/globus-gridftp-server-warn.patch b/globus-gridftp-server-warn.patch
index d3c3885..7342511 100644
--- a/globus-gridftp-server-warn.patch
+++ b/globus-gridftp-server-warn.patch
@@ -42,10 +42,32 @@ index b3531e1393..ac49e7d247 100644
result = gfs_l_gfork_opts_kmgint(opt[0], &val);
if(result != GLOBUS_SUCCESS)
diff --git a/gridftp/server/src/globus_gridftp_server.c
b/gridftp/server/src/globus_gridftp_server.c
-index 0aff2fd1d6..fc4a2b3e88 100644
+index 0aff2fd1d6..cc0ba04b01 100644
--- a/gridftp/server/src/globus_gridftp_server.c
+++ b/gridftp/server/src/globus_gridftp_server.c
-@@ -613,7 +613,8 @@ globus_l_gfs_ipc_closed(
+@@ -535,17 +535,16 @@ globus_l_gfs_spawn_child(
+ /* inc the connection count 2 here since we will dec it on this close
+ and on the death of the child process */
+ globus_gfs_config_inc_int("open_connections_count", 2);
+- globus_mutex_unlock(&globus_l_gfs_mutex);
+ result = globus_xio_register_close(
+ handle,
+ NULL,
+ globus_l_gfs_close_cb,
+- NULL);
++ NULL);
+ if(result != GLOBUS_SUCCESS)
+ {
+- globus_l_gfs_close_cb(handle, result, NULL);
+- }
+- }
++ globus_i_gfs_connection_closed();
++ }
++ }
+
+ GlobusGFSDebugExit();
+ return GLOBUS_SUCCESS;
+@@ -613,7 +612,8 @@ globus_l_gfs_ipc_closed(
}
handle = (globus_xio_handle_t) user_arg;
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 9aa2219..e471c83 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -254,6 +254,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Mon Mar 14 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-12
+- Put back mutex fix
+
* Sun Mar 13 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-11
- Better fix for undefined variable in embedded close callback
commit 5af105d11b2c219728f0d29afc9797582919c774
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Mar 13 21:34:47 2022 +0100
Better fix for undefined variable in embedded close callback
diff --git a/globus-gridftp-server-warn.patch b/globus-gridftp-server-warn.patch
index 6797ff1..d3c3885 100644
--- a/globus-gridftp-server-warn.patch
+++ b/globus-gridftp-server-warn.patch
@@ -457,18 +457,20 @@ index 785eba2240..0bf0ea4369 100644
char * enc_path;
char * enc_url;
diff --git a/gridftp/server/src/globus_i_gfs_embed.c
b/gridftp/server/src/globus_i_gfs_embed.c
-index 6ead624b62..8fafb33f83 100644
+index 6ead624b62..b97e89584d 100644
--- a/gridftp/server/src/globus_i_gfs_embed.c
+++ b/gridftp/server/src/globus_i_gfs_embed.c
-@@ -264,7 +264,6 @@ globus_l_gfs_ipc_closed(
+@@ -264,32 +264,26 @@ globus_l_gfs_ipc_closed(
void * user_arg,
globus_result_t result)
{
- globus_xio_handle_t xio_handle;
globus_gfs_embed_handle_t handle;
++ GlobusGFSName(globus_l_gfs_ipc_closed);
++ GlobusGFSDebugEnter();
if(result != GLOBUS_SUCCESS)
-@@ -272,20 +271,18 @@ globus_l_gfs_ipc_closed(
+ {
/* XXX TODO log and error */
}
@@ -483,19 +485,22 @@ index 6ead624b62..8fafb33f83 100644
- NULL,
- globus_l_gfs_close_cb,
- handle);
-+ result = globus_xio_server_register_close(
-+ handle->xio_server, globus_l_gfs_server_close_cb, handle);
++ globus_i_gfs_connection_closed(handle);
}
globus_mutex_unlock(&handle->mutex);
- if(result != GLOBUS_SUCCESS)
- {
+- if(result != GLOBUS_SUCCESS)
+- {
- globus_l_gfs_close_cb(xio_handle, result, handle);
-+ globus_l_gfs_server_close_cb(handle->xio_server, handle);
- }
+- }
++ GlobusGFSDebugExit();
}
-@@ -380,7 +377,7 @@ globus_l_gfs_new_server_cb(
+-
+ static
+ void
+ globus_l_gfs_new_server_cb(
+@@ -380,7 +374,7 @@ globus_l_gfs_new_server_cb(
&globus_gfs_ipc_default_iface,
system_handle,
globus_l_gfs_ipc_closed,
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 5d78ce0..9aa2219 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -254,6 +254,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Sun Mar 13 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-11
+- Better fix for undefined variable in embedded close callback
+
* Sun Mar 13 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-10
- No mutex fix needed here
commit 217168318647c55c9f3cd761b79510c52be8ba13
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Mar 13 18:32:40 2022 +0100
No mutex fix needed here
diff --git a/globus-gridftp-server-warn.patch b/globus-gridftp-server-warn.patch
index ff78ec2..6797ff1 100644
--- a/globus-gridftp-server-warn.patch
+++ b/globus-gridftp-server-warn.patch
@@ -42,27 +42,10 @@ index b3531e1393..ac49e7d247 100644
result = gfs_l_gfork_opts_kmgint(opt[0], &val);
if(result != GLOBUS_SUCCESS)
diff --git a/gridftp/server/src/globus_gridftp_server.c
b/gridftp/server/src/globus_gridftp_server.c
-index 0aff2fd1d6..52ed0db3f6 100644
+index 0aff2fd1d6..fc4a2b3e88 100644
--- a/gridftp/server/src/globus_gridftp_server.c
+++ b/gridftp/server/src/globus_gridftp_server.c
-@@ -535,7 +535,6 @@ globus_l_gfs_spawn_child(
- /* inc the connection count 2 here since we will dec it on this close
- and on the death of the child process */
- globus_gfs_config_inc_int("open_connections_count", 2);
-- globus_mutex_unlock(&globus_l_gfs_mutex);
- result = globus_xio_register_close(
- handle,
- NULL,
-@@ -543,7 +542,7 @@ globus_l_gfs_spawn_child(
- NULL);
- if(result != GLOBUS_SUCCESS)
- {
-- globus_l_gfs_close_cb(handle, result, NULL);
-+ globus_i_gfs_connection_closed();
- }
- }
-
-@@ -613,7 +612,8 @@ globus_l_gfs_ipc_closed(
+@@ -613,7 +613,8 @@ globus_l_gfs_ipc_closed(
}
handle = (globus_xio_handle_t) user_arg;
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 406ec99..5d78ce0 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -254,6 +254,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Sun Mar 13 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-10
+- No mutex fix needed here
+
* Sun Mar 13 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-9
- Improved mutex fix
commit 3b8ecac722c7fedf2231d4ac85d0d8c7e8082262
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sun Mar 13 09:14:36 2022 +0100
Improved mutex fix
diff --git a/globus-gridftp-server-warn.patch b/globus-gridftp-server-warn.patch
index 5793d65..ff78ec2 100644
--- a/globus-gridftp-server-warn.patch
+++ b/globus-gridftp-server-warn.patch
@@ -42,7 +42,7 @@ index b3531e1393..ac49e7d247 100644
result = gfs_l_gfork_opts_kmgint(opt[0], &val);
if(result != GLOBUS_SUCCESS)
diff --git a/gridftp/server/src/globus_gridftp_server.c
b/gridftp/server/src/globus_gridftp_server.c
-index 0aff2fd1d6..9704775842 100644
+index 0aff2fd1d6..52ed0db3f6 100644
--- a/gridftp/server/src/globus_gridftp_server.c
+++ b/gridftp/server/src/globus_gridftp_server.c
@@ -535,7 +535,6 @@ globus_l_gfs_spawn_child(
@@ -53,17 +53,16 @@ index 0aff2fd1d6..9704775842 100644
result = globus_xio_register_close(
handle,
NULL,
-@@ -543,7 +542,9 @@ globus_l_gfs_spawn_child(
+@@ -543,7 +542,7 @@ globus_l_gfs_spawn_child(
NULL);
if(result != GLOBUS_SUCCESS)
{
-+ globus_mutex_unlock(&globus_l_gfs_mutex);
- globus_l_gfs_close_cb(handle, result, NULL);
-+ globus_mutex_lock(&globus_l_gfs_mutex);
+- globus_l_gfs_close_cb(handle, result, NULL);
++ globus_i_gfs_connection_closed();
}
}
-@@ -613,7 +614,8 @@ globus_l_gfs_ipc_closed(
+@@ -613,7 +612,8 @@ globus_l_gfs_ipc_closed(
}
handle = (globus_xio_handle_t) user_arg;
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 1e9691f..406ec99 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -254,6 +254,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Sun Mar 13 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-9
+- Improved mutex fix
+
* Sat Mar 12 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-8
- Use sha256 hash when generating test certificates
- Fix some compiler warnings
commit 147f30a88024312e1fe03d7dd3a4be6c59d08457
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sat Mar 12 22:24:32 2022 +0100
Use sha256 hash when generating test certificates
Fix some compiler warnings
Fix unbalanced mutex lock/unlock
diff --git a/globus-gridftp-server-sha256.patch b/globus-gridftp-server-sha256.patch
new file mode 100644
index 0000000..af6e953
--- /dev/null
+++ b/globus-gridftp-server-sha256.patch
@@ -0,0 +1,13 @@
+diff --git a/gridftp/server/src/test/testcred.cnf.in
b/gridftp/server/src/test/testcred.cnf.in
+index ef12fd8e93..e878b0151a 100644
+--- a/gridftp/server/src/test/testcred.cnf.in
++++ b/gridftp/server/src/test/testcred.cnf.in
+@@ -44,7 +44,7 @@ commonName = supplied
+ ####################################################################
+ [ req ]
+ default_bits = 2048
+-default_md = sha1
++default_md = sha256
+ default_keyfile = privkey.pem
+ distinguished_name = req_distinguished_name
+ attributes = req_attributes
diff --git a/globus-gridftp-server-warn.patch b/globus-gridftp-server-warn.patch
new file mode 100644
index 0000000..5793d65
--- /dev/null
+++ b/globus-gridftp-server-warn.patch
@@ -0,0 +1,718 @@
+diff --git a/gridftp/server/src/gfs_dynbe_client.c
b/gridftp/server/src/gfs_dynbe_client.c
+index 43870b2649..62134e0a6c 100644
+--- a/gridftp/server/src/gfs_dynbe_client.c
++++ b/gridftp/server/src/gfs_dynbe_client.c
+@@ -172,6 +172,7 @@ main(
+ rc = globus_module_activate(GLOBUS_XIO_MODULE);
+ if(rc != 0)
+ {
++ result = GLOBUS_FAILURE;
+ goto error_activate;
+ }
+
+@@ -210,7 +211,7 @@ main(
+ tmp32 = htonl(1);
+ memcpy(&buffer[GF_DYN_ENTRY_COUNT_NDX], &tmp32, sizeof(uint32_t));
+
+- strncpy((char *) &buffer[GF_DYN_CS_NDX], be_cs, GF_DYN_CS_LEN);
++ strncpy((char *) &buffer[GF_DYN_CS_NDX], be_cs, GF_DYN_CS_LEN - 1);
+
+ result = globus_xio_open(g_xio_handle, reg_cs, NULL);
+ if(result != GLOBUS_SUCCESS)
+diff --git a/gridftp/server/src/gfs_gfork_master.c
b/gridftp/server/src/gfs_gfork_master.c
+index b3531e1393..ac49e7d247 100644
+--- a/gridftp/server/src/gfs_gfork_master.c
++++ b/gridftp/server/src/gfs_gfork_master.c
+@@ -1568,7 +1568,7 @@ gfs_l_gfork_backend_xio_open_cb(
+ memcpy(&buffer[GF_DYN_AT_ONCE_NDX], &converted_32, sizeof(uint32_t));
+ converted_32 = htonl(g_total_cons);
+ memcpy(&buffer[GF_DYN_TOTAL_NDX], &converted_32, sizeof(uint32_t));
+- strncpy((char *)&buffer[GF_DYN_CS_NDX], g_be_cs, GF_DYN_CS_LEN);
++ strncpy((char *)&buffer[GF_DYN_CS_NDX], g_be_cs, GF_DYN_CS_LEN - 1);
+
+ result = globus_xio_register_write(
+ handle,
+@@ -2041,7 +2041,7 @@ gfs_l_gfork_opts_mem_size(
+ int * out_parms_used)
+ {
+ globus_result_t result;
+- globus_off_t val;
++ globus_off_t val = 0;
+
+ result = gfs_l_gfork_opts_kmgint(opt[0], &val);
+ if(result != GLOBUS_SUCCESS)
+diff --git a/gridftp/server/src/globus_gridftp_server.c
b/gridftp/server/src/globus_gridftp_server.c
+index 0aff2fd1d6..9704775842 100644
+--- a/gridftp/server/src/globus_gridftp_server.c
++++ b/gridftp/server/src/globus_gridftp_server.c
+@@ -535,7 +535,6 @@ globus_l_gfs_spawn_child(
+ /* inc the connection count 2 here since we will dec it on this close
+ and on the death of the child process */
+ globus_gfs_config_inc_int("open_connections_count", 2);
+- globus_mutex_unlock(&globus_l_gfs_mutex);
+ result = globus_xio_register_close(
+ handle,
+ NULL,
+@@ -543,7 +542,9 @@ globus_l_gfs_spawn_child(
+ NULL);
+ if(result != GLOBUS_SUCCESS)
+ {
++ globus_mutex_unlock(&globus_l_gfs_mutex);
+ globus_l_gfs_close_cb(handle, result, NULL);
++ globus_mutex_lock(&globus_l_gfs_mutex);
+ }
+ }
+
+@@ -613,7 +614,8 @@ globus_l_gfs_ipc_closed(
+ }
+
+ handle = (globus_xio_handle_t) user_arg;
+- globus_mutex_unlock(&globus_l_gfs_mutex);
++
++ globus_mutex_lock(&globus_l_gfs_mutex);
+ {
+ result = globus_xio_register_close(
+ handle,
+diff --git a/gridftp/server/src/globus_i_gfs_config.c
b/gridftp/server/src/globus_i_gfs_config.c
+index 10963bd421..d5ee9a9a70 100644
+--- a/gridftp/server/src/globus_i_gfs_config.c
++++ b/gridftp/server/src/globus_i_gfs_config.c
+@@ -1880,8 +1880,6 @@ globus_l_gfs_config_display_docbook_usage()
+
+ for(i = 0; i < option_count; i++)
+ {
+- char * shortflag;
+- char * longflag;
+ char * value;
+ char * defval;
+
+@@ -1909,27 +1907,19 @@ globus_l_gfs_config_display_docbook_usage()
+ switch(o->type)
+ {
+ case GLOBUS_L_GFS_CONFIG_BOOL:
+- shortflag = "-";
+- longflag = "-";
+ value = NULL;
+ defval = o->int_value ? "TRUE" : "FALSE";
+ break;
+ case GLOBUS_L_GFS_CONFIG_INT:
+- shortflag = "-";
+- longflag = "-";
+ value = "number";
+ defval = o->int_value > 0 ?
+ globus_common_create_string("%d", o->int_value) : NULL;
+ break;
+ case GLOBUS_L_GFS_CONFIG_STRING:
+- shortflag = "-";
+- longflag = "-";
+ value = "string";
+ defval = o->value ? o->value : NULL;
+ break;
+ default:
+- shortflag = "";
+- longflag = "";
+ value = "";
+ defval = o->value ? o->value : NULL;
+ break;
+@@ -2000,8 +1990,6 @@ globus_l_gfs_config_display_asciidoc_usage()
+
+ for(i = 0; i < option_count; i++)
+ {
+- char * shortflag;
+- char * longflag;
+ char * value;
+ char * defval;
+
+@@ -2034,27 +2022,19 @@ globus_l_gfs_config_display_asciidoc_usage()
+ switch(o->type)
+ {
+ case GLOBUS_L_GFS_CONFIG_BOOL:
+- shortflag = "-";
+- longflag = "-";
+ value = NULL;
+ defval = o->int_value ? "TRUE" : "FALSE";
+ break;
+ case GLOBUS_L_GFS_CONFIG_INT:
+- shortflag = "-";
+- longflag = "-";
+ value = "number";
+ defval = o->int_value > 0 ?
+ globus_common_create_string("%d", o->int_value) : NULL;
+ break;
+ case GLOBUS_L_GFS_CONFIG_STRING:
+- shortflag = "-";
+- longflag = "-";
+ value = "string";
+ defval = o->value ? o->value : NULL;
+ break;
+ default:
+- shortflag = "";
+- longflag = "";
+ value = "";
+ defval = o->value ? o->value : NULL;
+ break;
+diff --git a/gridftp/server/src/globus_i_gfs_data.c
b/gridftp/server/src/globus_i_gfs_data.c
+index 785eba2240..0bf0ea4369 100644
+--- a/gridftp/server/src/globus_i_gfs_data.c
++++ b/gridftp/server/src/globus_i_gfs_data.c
+@@ -736,7 +736,7 @@ globus_l_gfs_base64_decode(
+ {
+ int i;
+ int j;
+- int D;
++ int D = 0;
+ char * p;
+ GlobusGFSName(globus_l_gfs_base64_decode);
+ GlobusGFSDebugEnter();
+@@ -1127,11 +1127,10 @@ globus_l_gfs_data_post_transfer_event_cb(
+
+ switch(data_handle->state)
+ {
+- /* occurs if the next transfer comand happens before this function
+- is called to switch out of the TE_VALID state
++ /* occurs if the next transfer command happens before this function
++ is called to switch out of the TE_VALID state */
+ case GLOBUS_L_GFS_DATA_HANDLE_INUSE:
+ break;
+-*/
+
+ case GLOBUS_L_GFS_DATA_HANDLE_TE_PRE_CLOSED:
+ /* cant free until destroy cb, put in full closed state */
+@@ -1161,7 +1160,7 @@ globus_l_gfs_data_post_transfer_event_cb(
+ case GLOBUS_L_GFS_DATA_HANDLE_VALID:
+ break;
+
+- /* havent even gotten a close, how did this happen? */
++ /* haven't even gotten a close, how did this happen? */
+ case GLOBUS_L_GFS_DATA_HANDLE_CLOSED:
+ case GLOBUS_L_GFS_DATA_HANDLE_CLOSED_AND_DESTROYED:
+ /* these shouldnt be possible */
+@@ -1319,7 +1318,9 @@ globus_i_gfs_get_full_path(
+ int cwd_len;
+ int sc;
+ char * slash = "/";
++#ifdef WIN32
+ char * tmp_path;
++#endif
+ char * norm_path;
+ GlobusGFSName(globus_i_gfs_get_full_path);
+ GlobusGFSDebugEnter();
+@@ -1482,7 +1483,7 @@ globus_i_gfs_data_check_path(
+ char path[MAXPATHLEN];
+ globus_list_t * list;
+ globus_result_t result = GLOBUS_SUCCESS;
+- globus_l_gfs_alias_ent_t * alias_ent;
++ globus_l_gfs_alias_ent_t * alias_ent = GLOBUS_NULL;
+ char * true_path = GLOBUS_NULL;
+ char * start_path;
+ int in_path_len;
+@@ -1730,7 +1731,7 @@ globus_i_gfs_data_check_path(
+
+ if(!rp_list && ret_path)
+ {
+- if(alias_ent->realpath)
++ if(alias_ent && alias_ent->realpath)
+ {
+ strncpy(path, alias_ent->realpath,
alias_ent->realpath_len);
+ strcpy(path + alias_ent->realpath_len,
+@@ -2489,58 +2490,6 @@ globus_l_gfs_authorize_cb(
+ GlobusGFSDebugExit();
+ }
+
+-static
+-globus_result_t
+-globus_l_gfs_data_decode_passed_cred(
+- char * encoded_cred,
+- gss_cred_id_t * out_cred)
+-{
+- OM_uint32 major_status;
+- OM_uint32 minor_status;
+- gss_buffer_desc buf;
+- gss_cred_id_t cred;
+- globus_result_t res;
+- GlobusGFSName(globus_l_gfs_data_decode_passed_cred);
+- GlobusGFSDebugEnter();
+-
+- buf.value = globus_libc_strdup(encoded_cred);
+-
+- res = globus_l_gfs_base64_decode(
+- (globus_byte_t *) encoded_cred, buf.value, &buf.length);
+- if(res != GLOBUS_SUCCESS)
+- {
+- globus_free(buf.value);
+- res = GlobusGFSErrorGeneric(
+- "Invalid base64 input for credential.");
+- }
+- else
+- {
+- major_status = gss_import_cred(
+- &minor_status,
+- &cred,
+- GSS_C_NO_OID,
+- 0,
+- &buf,
+- 0,
+- NULL);
+- globus_free(buf.value);
+- if(major_status != GSS_S_COMPLETE)
+- {
+- res = GlobusGFSErrorWrapFailed(
+- "Credential import", minor_status);
+- }
+- else
+- {
+- *out_cred = cred;
+- }
+- }
+-
+- GlobusGFSDebugExit();
+-
+- return res;
+-}
+-
+-
+ /*
+ * this is called when writing. if file exists it is a write
+ * request, if it does not exists it is a create request
+@@ -2913,14 +2862,12 @@ globus_l_gfs_data_auth_init_cb(
+ globus_bool_t destroy_session = GLOBUS_FALSE;
+ globus_bool_t destroy_op = GLOBUS_FALSE;
+ globus_l_gfs_data_operation_t * op;
+- globus_gfs_session_info_t * session_info;
+ globus_gfs_finished_info_t finished_info;
+ globus_bool_t ready = GLOBUS_FALSE;
+ GlobusGFSName(globus_l_gfs_data_auth_init_cb);
+ GlobusGFSDebugEnter();
+
+ op = (globus_l_gfs_data_operation_t *) user_arg;
+- session_info = (globus_gfs_session_info_t *) op->info_struct;
+
+ memset(&finished_info, '\0', sizeof(globus_gfs_finished_info_t));
+ if(result != GLOBUS_SUCCESS)
+@@ -5069,7 +5016,7 @@ globus_l_gfs_base64_encode(
+ {
+ int i;
+ int j;
+- unsigned char c;
++ unsigned char c = 0;
+ for (i=0,j=0; i < in_len; i++)
+ {
+ switch (i%3)
+@@ -5154,9 +5101,7 @@ void
+ globus_i_gfs_data_init()
+ {
+ char * restrict_path;
+- int rc;
+ globus_result_t result;
+- char * driver;
+ GlobusGFSName(globus_i_gfs_data_init);
+ GlobusGFSDebugEnter();
+
+@@ -5514,11 +5459,11 @@ globus_l_gfs_data_stat_kickout(
+ reply.id = bounce_info->op->id;
+ reply.result = bounce_info->error ?
+ globus_error_put(bounce_info->error) : GLOBUS_SUCCESS;
+- reply.info.stat.stat_array = bounce_info->stat_array;
+- reply.info.stat.stat_count = bounce_info->stat_count;
+- reply.info.stat.uid = bounce_info->op->session_handle->uid;
++ reply.info.stat.stat_array = bounce_info->stat_array;
++ reply.info.stat.stat_count = bounce_info->stat_count;
++ reply.info.stat.uid = (int)bounce_info->op->session_handle->uid;
+ reply.info.stat.gid_count = bounce_info->op->session_handle->gid_count;
+- reply.info.stat.gid_array = bounce_info->op->session_handle->gid_array;
++ reply.info.stat.gid_array = (int
*)bounce_info->op->session_handle->gid_array;
+
+ /* pull response code from error */
+ if(bounce_info->final_stat && reply.result != GLOBUS_SUCCESS &&
+@@ -5596,7 +5541,7 @@ globus_l_gfs_data_approve_popen(
+ char * end;
+ char * ptr;
+ char * alias;
+- char * prog;
++ char * prog = NULL;
+ char * tmp;
+ char * out = NULL;
+ globus_bool_t found;
+@@ -5752,7 +5697,7 @@ globus_l_gfs_data_load_stack(
+ char * default_stack,
+ globus_bool_t subst_io_drivers)
+ {
+- char * parsed_driver_string;
++ char * parsed_driver_string = NULL;
+ char * driver_string;
+ globus_result_t result = GLOBUS_SUCCESS;
+ GlobusGFSName(globus_l_gfs_data_load_stack);
+@@ -5835,7 +5780,7 @@ globus_i_gfs_data_request_command(
+ {
+ globus_result_t res;
+ int rc;
+- globus_gfs_acl_action_t action;
++ globus_gfs_acl_action_t action = GFS_ACL_ACTION_INIT;
+ globus_bool_t call = GLOBUS_TRUE;
+ globus_l_gfs_data_operation_t * op;
+ globus_result_t result;
+@@ -7621,7 +7566,6 @@ globus_i_gfs_data_request_handle_destroy(
+ globus_result_t result;
+ globus_l_gfs_data_session_t * session_handle;
+ globus_l_gfs_data_handle_t * data_handle;
+- int old_state_dbg;
+ GlobusGFSName(globus_i_gfs_data_request_handle_destroy);
+ GlobusGFSDebugEnter();
+
+@@ -7643,7 +7587,6 @@ globus_i_gfs_data_request_handle_destroy(
+
+ data_handle->destroy_requested = GLOBUS_TRUE;
+
+- old_state_dbg = data_handle->state;
+ session_arg = session_handle->session_arg;
+ switch(data_handle->state)
+ {
+@@ -7783,7 +7726,11 @@ globus_l_gfs_data_hybrid_session_start_cb(
+ {
+ hybrid_op = op->hybrid_op;
+ }
+-
++ else
++ {
++ return;
++ }
++
+ if(op->type == GLOBUS_L_GFS_DATA_INFO_TYPE_PASSIVE)
+ {
+ if(reply->result != GLOBUS_SUCCESS)
+@@ -7855,12 +7802,8 @@ globus_l_gfs_data_hybrid_session_start_cb(
+ hybrid_op->user_arg);
+ }
+ }
+- if(hybrid_op)
+- {
+- globus_l_gfs_data_operation_destroy(hybrid_op);
+- }
+-
+
++ globus_l_gfs_data_operation_destroy(hybrid_op);
+ }
+
+ static
+@@ -8710,9 +8653,9 @@ globus_i_gfs_data_request_recv(
+ return;
+
+ error_module:
++ globus_gridftp_server_finished_transfer(op, result);
+ error_op:
+ error_handle:
+- globus_gridftp_server_finished_transfer(op, result);
+ GlobusGFSDebugExitWithError();
+ }
+
+@@ -8901,9 +8844,9 @@ globus_i_gfs_data_request_send(
+ return;
+
+ error_module:
++ globus_gridftp_server_finished_transfer(op, result);
+ error_op:
+ error_handle:
+- globus_gridftp_server_finished_transfer(op, result);
+ GlobusGFSDebugExitWithError();
+ }
+
+@@ -9056,7 +8999,7 @@ globus_l_gfs_data_list_stat_cb(
+ globus_size_t buffer_len;
+ globus_l_gfs_data_stat_bounce_t * bounce_info;
+ globus_gfs_stat_info_t * stat_info;
+- globus_result_t result;
++ globus_result_t result = GLOBUS_SUCCESS;
+ globus_gfs_stat_t * stat_array;
+ globus_gfs_stat_t stat_temp;
+ int stat_count;
+@@ -9735,7 +9678,6 @@ globus_l_gfs_data_begin_cb(
+ globus_gfs_event_info_t event_reply;
+ globus_gfs_event_info_t event_info;
+ globus_l_gfs_data_operation_t * op;
+- globus_l_gfs_data_handle_state_t last_state;
+ void * remote_data_arg = NULL;
+ GlobusGFSName(globus_l_gfs_data_begin_cb);
+ GlobusGFSDebugEnter();
+@@ -9744,7 +9686,6 @@ globus_l_gfs_data_begin_cb(
+
+ globus_mutex_lock(&op->session_handle->mutex);
+ {
+- last_state = op->state;
+ switch(op->state)
+ {
+ case GLOBUS_L_GFS_DATA_CONNECTING:
+@@ -11915,7 +11856,6 @@ globus_l_gfs_finished_command_kickout(
+ globus_bool_t destroy_op = GLOBUS_FALSE;
+ void * remote_data_arg = NULL;
+ globus_l_gfs_data_operation_t * op;
+- globus_result_t result;
+ globus_l_gfs_data_cmd_bounce_t * bounce;
+
+ bounce = (globus_l_gfs_data_cmd_bounce_t *) user_arg;
+@@ -12304,7 +12244,6 @@ globus_gridftp_server_finished_stat(
+ int i;
+ char * base_path;
+ globus_gfs_stat_info_t * stat_info;
+- int code;
+ GlobusGFSName(globus_gridftp_server_finished_stat);
+ GlobusGFSDebugEnter();
+
+@@ -13465,7 +13404,6 @@ globus_gridftp_server_set_checksum_support(
+ globus_gfs_operation_t op,
+ const char * cksm_str)
+ {
+- globus_result_t result;
+ GlobusGFSName(globus_gridftp_server_set_checksum_support);
+ GlobusGFSDebugEnter();
+
+@@ -14764,7 +14702,7 @@ globus_i_gfs_http_data_parse_request(
+ char * d_req = NULL;
+ globus_size_t req_len;
+ char * line;
+- char * next_line;
++ char * next_line = NULL;
+ char * ptr;
+ char * enc_path;
+ char * enc_url;
+diff --git a/gridftp/server/src/globus_i_gfs_embed.c
b/gridftp/server/src/globus_i_gfs_embed.c
+index 6ead624b62..8fafb33f83 100644
+--- a/gridftp/server/src/globus_i_gfs_embed.c
++++ b/gridftp/server/src/globus_i_gfs_embed.c
+@@ -264,7 +264,6 @@ globus_l_gfs_ipc_closed(
+ void * user_arg,
+ globus_result_t result)
+ {
+- globus_xio_handle_t xio_handle;
+ globus_gfs_embed_handle_t handle;
+
+ if(result != GLOBUS_SUCCESS)
+@@ -272,20 +271,18 @@ globus_l_gfs_ipc_closed(
+ /* XXX TODO log and error */
+ }
+
+- xio_handle = (globus_xio_handle_t) user_arg;
+- globus_mutex_unlock(&handle->mutex);
++ handle = (globus_gfs_embed_handle_t) user_arg;
++
++ globus_mutex_lock(&handle->mutex);
+ {
+- result = globus_xio_register_close(
+- xio_handle,
+- NULL,
+- globus_l_gfs_close_cb,
+- handle);
++ result = globus_xio_server_register_close(
++ handle->xio_server, globus_l_gfs_server_close_cb, handle);
+ }
+ globus_mutex_unlock(&handle->mutex);
+
+ if(result != GLOBUS_SUCCESS)
+ {
+- globus_l_gfs_close_cb(xio_handle, result, handle);
++ globus_l_gfs_server_close_cb(handle->xio_server, handle);
+ }
+ }
+
+@@ -380,7 +377,7 @@ globus_l_gfs_new_server_cb(
+ &globus_gfs_ipc_default_iface,
+ system_handle,
+ globus_l_gfs_ipc_closed,
+- xio_handle);
++ handle);
+ }
+ else
+ {
+diff --git a/gridftp/server/src/globus_i_gfs_ipc.c
b/gridftp/server/src/globus_i_gfs_ipc.c
+index c2d58fbb1b..acf9063740 100644
+--- a/gridftp/server/src/globus_i_gfs_ipc.c
++++ b/gridftp/server/src/globus_i_gfs_ipc.c
+@@ -4137,17 +4137,17 @@ globus_l_gfs_ipc_reply_read_body_cb(
+ globus_byte_t * new_buf;
+ globus_gfs_ipc_request_t * request = user_arg;
+ globus_i_gfs_ipc_handle_t * ipc;
+- globus_gfs_command_info_t * cmd_info;
+- globus_gfs_transfer_info_t * trans_info;
+- globus_gfs_data_info_t * data_info;
+- globus_gfs_stat_info_t * stat_info;
++ globus_gfs_command_info_t * cmd_info = NULL;
++ globus_gfs_transfer_info_t * trans_info = NULL;
++ globus_gfs_data_info_t * data_info = NULL;
++ globus_gfs_stat_info_t * stat_info = NULL;
+ globus_gfs_event_info_t * event_info;
+ globus_gfs_operation_type_t type;
+- globus_byte_t * user_buffer;
+- globus_size_t user_buffer_length;
+- int user_buffer_type;
++ globus_byte_t * user_buffer = NULL;
++ globus_size_t user_buffer_length = 0;
++ int user_buffer_type = 0;
+ int rc;
+- void * data_arg;
++ void * data_arg = NULL;
+ globus_bool_t process = GLOBUS_FALSE;
+ int error_state;
+ int no_reply_state;
+@@ -4918,6 +4918,7 @@ globus_l_gfs_ipc_reply_cb(
+ goto error_already;
+ break;
+ case GLOBUS_GFS_IPC_STATE_REPLY_WAIT:
++ error_state = GLOBUS_GFS_IPC_STATE_REPLY_WAIT;
+ break;
+ default:
+ globus_assert(0 && "memory corruption?");
+diff --git a/gridftp/server/src/globus_i_gfs_log.c
b/gridftp/server/src/globus_i_gfs_log.c
+index bd10c89d2f..837bcfc547 100644
+--- a/gridftp/server/src/globus_i_gfs_log.c
++++ b/gridftp/server/src/globus_i_gfs_log.c
+@@ -85,7 +85,6 @@ globus_i_gfs_log_open()
+ int len;
+ int ctr;
+ char * tag;
+- globus_result_t result;
+ globus_reltime_t flush_interval;
+ globus_size_t buffer;
+ int rc;
+@@ -369,7 +368,6 @@ globus_i_gfs_log_open()
+ void
+ globus_i_gfs_log_close(void)
+ {
+- globus_list_t * list;
+ GlobusGFSName(globus_i_gfs_log_close);
+ GlobusGFSDebugEnter();
+
+diff --git a/gridftp/server/src/modules/file/globus_gridftp_server_file.c
b/gridftp/server/src/modules/file/globus_gridftp_server_file.c
+index f7b7416826..2ce4c7fae5 100644
+--- a/gridftp/server/src/modules/file/globus_gridftp_server_file.c
++++ b/gridftp/server/src/modules/file/globus_gridftp_server_file.c
+@@ -783,7 +783,6 @@ globus_l_gfs_file_stat(
+ globus_gfs_stat_t * stat_array;
+ int stat_count = 0;
+ int total_stat_count = 0;
+- DIR * dir;
+ char basepath[MAXPATHLEN];
+ char filename[MAXPATHLEN];
+ char symlink_target[MAXPATHLEN];
+@@ -850,6 +849,7 @@ globus_l_gfs_file_stat(
+ {
+ /* use larger path bufs so we have the full name for err msg */
+ int maxpathlen = GLOBUS_MAX(4096, MAXPATHLEN);
++ DIR * dir;
+ struct dirent * dir_entry;
+ int i;
+ char dir_path[maxpathlen];
+@@ -1046,8 +1046,13 @@ globus_l_gfs_file_stat(
+ stat_count = i;
+
+ closedir(dir);
+-
++ goto done_fake;
+
++error_stat2:
++ globus_l_gfs_file_destroy_stat(stat_array, stat_count);
++error_alloc2:
++ closedir(dir);
++ goto error_open;
+ }
+ done_fake:
+
+@@ -1090,7 +1095,7 @@ done_fake:
+ if(!stat_array)
+ {
+ result = GlobusGFSErrorMemory("stat_array");
+- goto error_alloc2;
++ goto error_open;
+ }
+
+ snprintf(
+@@ -1122,9 +1127,6 @@ done_fake:
+ if(slow_listings &&
+ (dir_entry->d_type == DT_DIR || dir_entry->d_type == DT_REG))
+ {
+- unsigned long h = 0;
+- char * key;
+-
+ stat_buf = (struct stat)
+ {
+ .st_mode = S_IRWXU |
+@@ -1186,7 +1188,7 @@ done_fake:
+ &stat_array[i], &stat_buf, dir_entry->d_name,
symlink_target, link_stat_buf.st_mode, base_error);
+
+ /* set nlink to total files in dir for . entry */
+- if(check_cdir && dir_entry->d_name &&
++ if(check_cdir &&
+ dir_entry->d_name[0] == '.' &&
dir_entry->d_name[1] == '\0')
+ {
+ check_cdir = GLOBUS_FALSE;
+@@ -1231,7 +1233,7 @@ done_fake:
+ if(!stat_array)
+ {
+ result = GlobusGFSErrorMemory("stat_array");
+- goto error_alloc2;
++ goto error_open;
+ }
+
+ stat_count = 0;
+@@ -1253,11 +1255,7 @@ done_fake:
+
+ GlobusGFSFileDebugExit();
+ return;
+-error_stat2:
+- globus_l_gfs_file_destroy_stat(stat_array, stat_count);
+-error_alloc2:
+- closedir(dir);
+-
++
+ error_open:
+ error_alloc1:
+ error_stat1:
+@@ -1977,7 +1975,6 @@ globus_l_gfs_file_open_cksm_cb(
+ void * user_arg)
+ {
+ globus_l_gfs_file_cksm_monitor_t * monitor;
+- char * freq;
+ GlobusGFSName(globus_l_gfs_file_open_cksm_cb);
+ GlobusGFSFileDebugEnter();
+
+diff --git a/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
b/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
+index b4ab1ae246..675932fde9 100644
+--- a/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
++++ b/gridftp/server/src/modules/remote/globus_gridftp_server_remote.c
+@@ -402,7 +402,7 @@ globus_l_gfs_remote_select_nodes(
+ repo_name = bounce->repo;
+ callback = bounce->callback;
+ user_arg = bounce->user_arg;
+- nodes_requested = bounce->num_nodes;
++ nodes_requested = num_nodes;
+
+ /* select a new set of nodes */
+ result = globus_gfs_brain_select_nodes(
+@@ -920,7 +920,6 @@ globus_l_gfs_ipc_event_cb(
+ globus_l_gfs_remote_handle_t * my_handle;
+ int i;
+ globus_l_gfs_remote_ipc_bounce_t * bounce_info;
+- globus_list_t * list;
+ globus_bool_t finish = GLOBUS_FALSE;
+ globus_l_gfs_remote_node_info_t * current_node = NULL;
+ globus_l_gfs_remote_node_info_t * master_node = NULL;
+@@ -981,8 +980,7 @@ globus_l_gfs_ipc_event_cb(
+
+ for(i = 0; i < bounce_info->node_handle->count; i++)
+ {
+- node_info = (globus_l_gfs_remote_node_info_t *)
+- globus_list_first(list);
++ node_info = bounce_info->node_handle->nodes[i];
+ info = (globus_gfs_transfer_info_t *) node_info->info;
+
+ if(node_info->ipc_handle == ipc_handle)
+diff --git a/gridftp/server/src/test/error_response_test.c
b/gridftp/server/src/test/error_response_test.c
+index a1825b62aa..4a26969cab 100644
+--- a/gridftp/server/src/test/error_response_test.c
++++ b/gridftp/server/src/test/error_response_test.c
+@@ -219,7 +219,6 @@ static
+ bool
+ test_error_multiline(void)
+ {
+- globus_result_t result = GLOBUS_SUCCESS;
+ globus_object_t *err = NULL;
+ char *msg = NULL;
+ char *ftp_str = NULL;
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index a24891e..1e9691f 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -20,6 +20,13 @@ Source2: globus-gridftp-sshftp.service
Source3: %{name}
Source4: globus-gridftp-sshftp
Source8: README
+# Use sha256 hash when generating test certificates
+#
https://github.com/gridcf/gct/pull/178
+Patch0: %{name}-sha256.patch
+# Fix some compiler warnings
+# Fix unbalanced mutex lock/unlock
+#
https://github.com/gridcf/gct/pull/179
+Patch1: %{name}-warn.patch
BuildRequires: make
BuildRequires: gcc
@@ -114,6 +121,8 @@ Globus GridFTP Server Development Files
%prep
%setup -q -n %{_name}-%{version}
+%patch0 -p4
+%patch1 -p4
%build
# Reduce overlinking
@@ -245,6 +254,11 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Sat Mar 12 2022 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-8
+- Use sha256 hash when generating test certificates
+- Fix some compiler warnings
+- Fix unbalanced mutex lock/unlock
+
* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 13.22-7
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
commit b8241434ccd636769327253d03c852c1323ee89e
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 20 06:18:17 2022 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index d8cf890..a24891e 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -245,6 +245,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Thu Jan 20 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 13.22-7
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Fri Dec 17 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-6
- Reenable optional test dependency fakeroot on EPEL 9 - now available
commit 21fde77480092fabf1405b4f142b26df6ec7f434
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Sat Dec 18 00:32:05 2021 +0100
Reenable optional test dependency fakeroot on EPEL 9 - now available
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 592d6a1..d8cf890 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -51,8 +51,7 @@ BuildConflicts: fakeroot
%else
BuildRequires: fakeroot
%endif
-%endif
-%if %{?fedora}%{!?fedora:0}
+%else
BuildRequires: fakeroot
%endif
@@ -246,6 +245,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Fri Dec 17 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-6
+- Reenable optional test dependency fakeroot on EPEL 9 - now available
+
* Fri Dec 17 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-5
- Make XIO udt driver a weak dependency
commit d625919117312cc3ad17346632a067678d03c214
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Fri Dec 17 09:38:53 2021 +0100
Bump release
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index f8d9ca4..592d6a1 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -246,9 +246,11 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Fri Dec 17 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-5
+- Make XIO udt driver a weak dependency
+
* Thu Dec 16 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-4
- Drop optional test dependency fakeroot on EPEL 9 - not yet available
-- Make XIO udt driver a weak dependency
* Wed Nov 03 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-3
- Drop broken optional test dependency fakeroot on ppc64le in EPEL
commit b8a5f80443ae38047760241bcfa8f7002e3dfda7
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Fri Dec 17 09:33:55 2021 +0100
Make XIO udt driver a weak dependency
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index b565a8c..f8d9ca4 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -57,7 +57,11 @@ BuildRequires: fakeroot
%endif
Requires: globus-xio-gsi-driver%{?_isa} >= 2
+%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8
+Recommends: globus-xio-udt-driver%{?_isa} >= 1
+%else
Requires: globus-xio-udt-driver%{?_isa} >= 1
+%endif
Requires: globus-common%{?_isa} >= 17
Requires: globus-xio%{?_isa} >= 5
Requires: globus-gridftp-server-control%{?_isa} >= 9
@@ -244,6 +248,7 @@ fi
%changelog
* Thu Dec 16 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-4
- Drop optional test dependency fakeroot on EPEL 9 - not yet available
+- Make XIO udt driver a weak dependency
* Wed Nov 03 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-3
- Drop broken optional test dependency fakeroot on ppc64le in EPEL
commit 9ce1f2288a48b1b9d37c8199e395e213706f6c6e
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Thu Dec 16 23:05:20 2021 +0100
Drop optional test dependency fakeroot on EPEL 9 - not yet available
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 2f7d5df..b565a8c 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -51,7 +51,8 @@ BuildConflicts: fakeroot
%else
BuildRequires: fakeroot
%endif
-%else
+%endif
+%if %{?fedora}%{!?fedora:0}
BuildRequires: fakeroot
%endif
@@ -241,6 +242,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Thu Dec 16 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-4
+- Drop optional test dependency fakeroot on EPEL 9 - not yet available
+
* Wed Nov 03 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-3
- Drop broken optional test dependency fakeroot on ppc64le in EPEL
commit 66d39ac6ac92fca3f6bef099da288599d26e43aa
Author: Mattias Ellert <mattias.ellert(a)physics.uu.se>
Date: Wed Nov 3 12:53:39 2021 +0100
Drop broken optional test dependency fakeroot on ppc64le in EPEL
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 1e57449..2f7d5df 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -44,7 +44,16 @@ BuildRequires: systemd
# Additional requirements for make check
BuildRequires: openssl
# Optional test dependency
+%if %{?rhel}%{!?rhel:0} == 7 || %{?rhel}%{!?rhel:0} == 8
+%ifarch ppc64le
+# Fakeroot in EPEL is broken on ppc64le
+BuildConflicts: fakeroot
+%else
+BuildRequires: fakeroot
+%endif
+%else
BuildRequires: fakeroot
+%endif
Requires: globus-xio-gsi-driver%{?_isa} >= 2
Requires: globus-xio-udt-driver%{?_isa} >= 1
@@ -232,6 +241,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Wed Nov 03 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-3
+- Drop broken optional test dependency fakeroot on ppc64le in EPEL
+
* Tue Sep 14 2021 Sahana Prasad <sahana(a)redhat.com> - 13.22-2
- Rebuilt with OpenSSL 3.0.0
commit ceca6af6b6ed6355ec1bbe6c82bf50559fdf6750
Author: Sahana Prasad <sahana(a)redhat.com>
Date: Tue Sep 14 19:02:52 2021 +0200
Rebuilt with OpenSSL 3.0.0
diff --git a/globus-gridftp-server.spec b/globus-gridftp-server.spec
index 2fec752..1e57449 100644
--- a/globus-gridftp-server.spec
+++ b/globus-gridftp-server.spec
@@ -9,7 +9,7 @@
Name: globus-gridftp-server
%global _name %(tr - _ <<< %{name})
Version: 13.22
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Grid Community Toolkit - Globus GridFTP Server
License: ASL 2.0
@@ -232,6 +232,9 @@ fi
%{_libdir}/pkgconfig/%{name}.pc
%changelog
+* Tue Sep 14 2021 Sahana Prasad <sahana(a)redhat.com> - 13.22-2
+- Rebuilt with OpenSSL 3.0.0
+
* Thu Aug 26 2021 Mattias Ellert <mattias.ellert(a)physics.uu.se> - 13.22-1
- Typo fixes