Blob Blame History Raw
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..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(
         /* 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(
     }
 
     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;