Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 131ef4d52b8c2587ee54f517dbc63738 > files > 1

globus-gram-job-manager-10.59-2.fc14.src.rpm

diff -ur globus_gram_job_manager-10.42.orig/logging.c globus_gram_job_manager-10.42/logging.c
--- globus_gram_job_manager-10.42.orig/logging.c	2010-03-22 15:47:53.000000000 +0100
+++ globus_gram_job_manager-10.42/logging.c	2010-04-19 05:55:09.343794723 +0200
@@ -23,6 +23,10 @@
 
 #include <string.h>
 
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 4096
+#endif
+
 globus_logging_handle_t                 globus_i_gram_job_manager_log_stdio;
 globus_logging_handle_t                 globus_i_gram_job_manager_log_sys;
 static globus_symboltable_t             globus_l_gram_log_symboltable;
diff -ur globus_gram_job_manager-10.42.orig/startup_socket.c globus_gram_job_manager-10.42/startup_socket.c
--- globus_gram_job_manager-10.42.orig/startup_socket.c	2010-03-22 15:47:54.000000000 +0100
+++ globus_gram_job_manager-10.42/startup_socket.c	2010-04-19 04:58:39.338545731 +0200
@@ -629,7 +629,7 @@
     gss_cred_id_t                       cred)
 {
     int                                 sock;
-    char                                sockpath[PATH_MAX != -1 ? PATH_MAX: _POSIX_PATH_MAX];
+    char *                              sockpath;
     char                                byte[1];
     int                                 rc = 0;
     struct sockaddr_un                  addr;
@@ -658,6 +658,36 @@
             context_fd,
             response_fd);
 
+    sockpath = globus_malloc(strlen(manager->config->home) +
+                             strlen(manager->config->hostname) +
+                             strlen(manager->config->jobmanager_type) +
+                             strlen(manager->config->service_tag) + 21);
+    if (sockpath == NULL)
+    {
+        rc = GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES;
+        globus_gram_job_manager_log(
+                manager,
+                GLOBUS_GRAM_JOB_MANAGER_LOG_WARN,
+                "event=gram.send_job.end "
+                "level=WARN "
+                "http_body_fd=%d "
+                "context_fd=%d "
+                "response_fd=%d "
+                "status=%d "
+                "errno=%d "
+                "msg=\"%s\" "
+                "reason=\"%s\" "
+                "\n",
+                http_body_fd,
+                context_fd,
+                response_fd,
+                -rc,
+                errno,
+                "Error allocating socket path",
+                strerror(errno));
+        goto sockpath_failed;
+    }
+
     sprintf(sockpath,
             "%s/.globus/job/%s/%s.%s.sock",
             manager->config->home,
@@ -999,6 +1029,8 @@
 setsockopt_failed:
     close(sock);
 socket_failed:
+    globus_free(sockpath);
+sockpath_failed:
 
     return rc;
 }