diff options
author | Joonas Niilola <juippis@gentoo.org> | 2020-11-15 15:54:18 +0200 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2020-11-15 17:31:18 +0200 |
commit | 0c4b62b4f66782541d7a7fbb579a078e7661f38f (patch) | |
tree | d1e93d5dc4c6f5f21747af1163c86e841b07a486 /sys-cluster/torque | |
parent | sys-devel/clang: fix SizeViolation issue (diff) | |
download | gentoo-0c4b62b4f66782541d7a7fbb579a078e7661f38f.tar.gz gentoo-0c4b62b4f66782541d7a7fbb579a078e7661f38f.tar.bz2 gentoo-0c4b62b4f66782541d7a7fbb579a078e7661f38f.zip |
sys-cluster/torque: fix SizeViolation issue
Closes: https://bugs.gentoo.org/748216
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'sys-cluster/torque')
-rw-r--r-- | sys-cluster/torque/Manifest | 1 | ||||
-rw-r--r-- | sys-cluster/torque/files/torque-6.0.4-gcc7.patch | 1606 | ||||
-rw-r--r-- | sys-cluster/torque/torque-6.0.4-r1.ebuild | 5 |
3 files changed, 4 insertions, 1608 deletions
diff --git a/sys-cluster/torque/Manifest b/sys-cluster/torque/Manifest index 14f7f3010123..712c69b3f5a5 100644 --- a/sys-cluster/torque/Manifest +++ b/sys-cluster/torque/Manifest @@ -1,3 +1,4 @@ DIST torque-4.1.7.tar.gz 6218108 BLAKE2B 6c1ad0f1bb3f364603ad7f498999bd910491910fa5632b9f6b82e08b3afb8c54e8775c38bc8e5c959aa99d0647c54c7c348cd07bcbe11add8bfab5f3f06a4c80 SHA512 5a085c0a7b205fed075bff4599db90ca5c4bb5f22d87d76fd56539d5cc1935bb8eeffcd4d18ba84401bd4ca128718070b69c8b91ab6814a4638622ba351654e6 DIST torque-4.2.10-gh-20150517.tar.gz 5836286 BLAKE2B 7108f1adcb6f674526b7db97df4ebcee04ae5c818d4f35ed1230a4e72e52ec0bc3b44e17334a143b21bcd3acccefc3927eca4f98d54d37745c8bb46a75e07045 SHA512 600bb5389b6a4161732b7aa82627f1ebeae238d7091aa2e223d9a14c44bf4668662f664b976f62ba3f1d8a366f90fb6058a8c904e20c26432dccd6abcd9c57fa +DIST torque-6.0.4-gcc7.patch 50412 BLAKE2B 43748e9bfd3811abdfeb56f93dd517fcb07a6902194120e2c9e16bbe5bbe0f04afd3f898616d46e0310902a6376671be0c8f3865e8f7dd5381fca46e7ad62fc8 SHA512 430ae6a80ebbfb2066831326f8ce25a34cb6fc17c1fbe4a202c495baceb2b7011c9f6782da31b78c34287f26765c76c587611d689791523b8bd53d634e3681b6 DIST torque-6.0.4-gh-20170829.tar.gz 6182495 BLAKE2B f9156ae4ffe388a7f3fa0df142e5f2d48c16fd7b8c148a3a80cd1c977eb0c1ef4a455da275f993100867be043422526ed05c53734e707851083d6d23ee1a2cc4 SHA512 8f1101adb89e06617de501f7956e126633b78b495baeb7980d3c534d34537cc604a3cf0a7c23c48eb2554b26cc13672b0e00c75d0f722d63ac4d42d57388ed94 diff --git a/sys-cluster/torque/files/torque-6.0.4-gcc7.patch b/sys-cluster/torque/files/torque-6.0.4-gcc7.patch deleted file mode 100644 index 340eb9e1bfc0..000000000000 --- a/sys-cluster/torque/files/torque-6.0.4-gcc7.patch +++ /dev/null @@ -1,1606 +0,0 @@ -From 8a0b748d3644dde30372ee25c4fe05bec10b2166 Mon Sep 17 00:00:00 2001 -From: Chad Vizino <cvizino@adaptivecomputing.com> -Date: Fri, 29 Mar 2019 09:23:08 -0600 -Subject: [PATCH] TRQ-4330 - fix gcc/g++ 7 compile issues - ---- - src/cmds/qdel.c | 6 +- - src/cmds/qsub_functions.c | 12 ++-- - src/cmds/qterm.c | 2 + - src/include/array.h | 2 +- - src/include/attribute.h | 4 +- - src/lib/Libattr/attr_fn_acl.c | 4 +- - src/lib/Libattr/attr_fn_arst.c | 4 +- - src/lib/Libcmds/cvtdate.c | 8 +-- - src/lib/Libdis/disrsc.c | 2 + - src/lib/Libdis/disrsi.c | 2 + - src/lib/Libdis/disrsl.c | 2 + - src/lib/Libdis/disrss.c | 2 + - src/lib/Libnet/net_client.c | 4 +- - src/lib/Libnet/net_common.c | 1 + - src/lib/Libutils/jsoncpp.cpp | 9 +++ - src/lib/Libutils/numa_chip.cpp | 10 +-- - src/resmom/checkpoint.c | 59 ++++++++++------ - src/resmom/generate_alps_status.c | 7 +- - src/resmom/linux/mom_mach.c | 79 +++++++++++++-------- - src/resmom/mom_main.c | 16 ++--- - src/resmom/mom_req_quejob.c | 12 ++-- - src/resmom/mom_server.c | 41 +++++------ - src/resmom/parse_config.c | 4 +- - src/resmom/requests.c | 8 +-- - src/scheduler.cc/samples/fifo/dedtime.c | 2 +- - src/server/array_func.c | 6 +- - src/server/array_func.h | 2 +- - src/server/geteusernam.c | 2 +- - src/server/job_func.c | 28 ++++++-- - src/server/node_attr_def.c | 16 ++--- - src/server/node_manager.c | 5 +- - src/server/pbsd_init.c | 2 + - src/server/process_request.c | 18 ++--- - src/server/req_jobobit.c | 16 ++++- - src/server/req_quejob.c | 2 +- - src/server/req_runjob.c | 10 ++- - src/server/req_stat.c | 2 +- - src/server/svr_chk_owner.c | 47 +++++++++---- - src/server/svr_jobfunc.c | 80 +++++++++++++++------- - src/test/catch_child/scaffolding.c | 1 + - src/test/geteusernam/scaffolding.c | 2 +- - src/test/node_manager/test_uut.c | 4 +- - src/test/pbs_log/scaffolding.c | 3 +- - src/test/pbsd_main/scaffolding.c | 2 +- - src/test/process_alps_status/scaffolding.c | 2 + - src/test/process_request/scaffolding.c | 6 +- - src/test/req_stat/scaffolding.c | 4 +- - src/test/svr_chk_owner/scaffolding.c | 2 +- - torque.setup.in | 2 +- - 49 files changed, 358 insertions(+), 208 deletions(-) - -diff --git a/src/cmds/qdel.c b/src/cmds/qdel.c -index 909018da66..d7e64f6289 100644 ---- a/src/cmds/qdel.c -+++ b/src/cmds/qdel.c -@@ -49,7 +49,7 @@ void process_config_file( - - - --bool is_array( -+bool is_job_array( - - char *job_id) - -@@ -66,7 +66,7 @@ bool is_array( - } - - return(false); -- } /* END is_array() */ -+ } /* END is_job_array() */ - - - -@@ -289,7 +289,7 @@ int qdel_main( - snprintf(job_id, sizeof(job_id), "%s", argv[optind]); - - if ((dash_t == true) && -- (is_array(job_id) == false)) -+ (is_job_array(job_id) == false)) - { - fprintf(stderr, "qdel: Error: job id '%s' isn't a job array but -t was specified.\n", - job_id); -diff --git a/src/cmds/qsub_functions.c b/src/cmds/qsub_functions.c -index 4fdfac0a7b..9799c831f4 100644 ---- a/src/cmds/qsub_functions.c -+++ b/src/cmds/qsub_functions.c -@@ -3363,14 +3363,14 @@ void process_opts( - if (add_verify_resources(ji->res_attr, optarg, data_type) != 0) - print_qsub_usage_exit("qsub: illegal -l value"); - -- //If cpuclock gets set we need to set the node exclusive flag -+ //If cpuclock gets set we need to set the node exclusive flag -+ { -+ job_data *pData = NULL; -+ if (hash_find(ji->res_attr,"cpuclock",&pData)) - { -- job_data *pData = NULL; -- if (hash_find(ji->res_attr,"cpuclock",&pData)) -- { -- hash_add_or_exit(ji->job_attr, ATTR_node_exclusive, "TRUE", data_type); -- } -+ hash_add_or_exit(ji->job_attr, ATTR_node_exclusive, "TRUE", data_type); - } -+ } - - break; - -diff --git a/src/cmds/qterm.c b/src/cmds/qterm.c -index d05bd42d4e..0519328c01 100644 ---- a/src/cmds/qterm.c -+++ b/src/cmds/qterm.c -@@ -89,6 +89,8 @@ int main( - - local = true; - -+ break; -+ - case 't': - - type = optarg; -diff --git a/src/include/array.h b/src/include/array.h -index 74050d0a25..d53dec1d3a 100644 ---- a/src/include/array.h -+++ b/src/include/array.h -@@ -176,7 +176,7 @@ - #define TOKENS_TAG "tokens" - #define TOKEN_TAG "token" - --int is_array(char *id); -+int is_id_array(char *id); - int array_delete(job_array *pa); - int array_save(job_array *pa); - int array_save(job_array *pa); -diff --git a/src/include/attribute.h b/src/include/attribute.h -index 8fbff163b8..3d025ab66f 100644 ---- a/src/include/attribute.h -+++ b/src/include/attribute.h -@@ -512,12 +512,12 @@ int to_size(const char *val, struct size_value *psize); - void from_size(struct size_value *psize, char *cvnbuf); - void create_size_string(char *buf, struct size_value values); - --#define NULL_FUNC '\0' -+#define NULL_FUNC NULL - - /* other associated funtions */ - - int acl_check(pbs_attribute *, char *canidate, int type); --int acl_check_my_array_string(struct array_strings *, char *, int); -+int acl_check_my_array_string(struct array_strings *, const char *, int); - char *arst_string(const char *str, pbs_attribute *pattr); - void attrl_fixlink(tlist_head *svrattrl); - void recov_acl(pbs_attribute *, attribute_def *, const char *, const char *); -diff --git a/src/lib/Libattr/attr_fn_acl.c b/src/lib/Libattr/attr_fn_acl.c -index ebb2775bf4..a7368b9f3b 100644 ---- a/src/lib/Libattr/attr_fn_acl.c -+++ b/src/lib/Libattr/attr_fn_acl.c -@@ -232,7 +232,7 @@ fptr_int get_my_match_func( - int acl_check_my_array_string( - - struct array_strings *pas, -- char *name, -+ const char *name, - int type) - - { -@@ -503,6 +503,8 @@ int set_allacl( - - /* No break, "Set" falls into "Incr" to add strings */ - -+ // fall through -+ - case INCR_OLD: - case INCR: - -diff --git a/src/lib/Libattr/attr_fn_arst.c b/src/lib/Libattr/attr_fn_arst.c -index c63281637e..9d82e873a3 100644 ---- a/src/lib/Libattr/attr_fn_arst.c -+++ b/src/lib/Libattr/attr_fn_arst.c -@@ -532,7 +532,8 @@ int encode_arst( - - *pc++ = '\\'; - -- // escape sequence added. Fall through. -+ // escape sequence added. -+ // fall through - - default: - -@@ -735,6 +736,7 @@ int set_arst( - pas->as_next = pas->as_buf; - - /* no break, "SET" falls into "MERGE" to add strings */ -+ // fall through - - case INCR_OLD: - case MERGE: -diff --git a/src/lib/Libcmds/cvtdate.c b/src/lib/Libcmds/cvtdate.c -index e936c6fbed..0e24639619 100644 ---- a/src/lib/Libcmds/cvtdate.c -+++ b/src/lib/Libcmds/cvtdate.c -@@ -167,7 +167,7 @@ time_t cvtdate( - year = atoi(buf) * 100; - datestr += 2; - -- /* no break, fall into next case */ -+ // fall through - - case 10: /* YYMMDDhhmm */ - buf[0] = datestr[0]; -@@ -187,7 +187,7 @@ time_t cvtdate( - - datestr += 2; - -- /* no break, fall into next case */ -+ // fall through - - case 8: /* MMDDhhmm */ - buf[0] = datestr[0]; -@@ -209,7 +209,7 @@ time_t cvtdate( - - datestr += 2; - -- /* no break, fall into next case */ -+ // fall through - - case 6: /* DDhhmm */ - buf[0] = datestr[0]; -@@ -229,7 +229,7 @@ time_t cvtdate( - - datestr += 2; - -- /* no break, fall into next case */ -+ // fall through - - case 4: /* hhmm */ - buf[0] = datestr[0]; -diff --git a/src/lib/Libdis/disrsc.c b/src/lib/Libdis/disrsc.c -index ac7fec6cbb..2baf87b2b9 100644 ---- a/src/lib/Libdis/disrsc.c -+++ b/src/lib/Libdis/disrsc.c -@@ -141,6 +141,8 @@ signed char disrsc( - else - locret = DIS_OVERFLOW; - -+ // fall through -+ - case DIS_OVERFLOW: - value = negate ? SCHAR_MIN : SCHAR_MAX; - } -diff --git a/src/lib/Libdis/disrsi.c b/src/lib/Libdis/disrsi.c -index a2417725fe..dd073b1bb0 100644 ---- a/src/lib/Libdis/disrsi.c -+++ b/src/lib/Libdis/disrsi.c -@@ -141,6 +141,8 @@ int disrsi( - *retval = locret; - } - -+ // fall through -+ - case DIS_OVERFLOW: - - value = negate ? INT_MIN : INT_MAX; -diff --git a/src/lib/Libdis/disrsl.c b/src/lib/Libdis/disrsl.c -index 9853056fcf..5fba4a4ba0 100644 ---- a/src/lib/Libdis/disrsl.c -+++ b/src/lib/Libdis/disrsl.c -@@ -139,6 +139,8 @@ long disrsl( - else - locret = DIS_OVERFLOW; - -+ // fall through -+ - case DIS_OVERFLOW: - value = negate ? LONG_MIN : LONG_MAX; - } -diff --git a/src/lib/Libdis/disrss.c b/src/lib/Libdis/disrss.c -index 80eb98109b..e2496b8adf 100644 ---- a/src/lib/Libdis/disrss.c -+++ b/src/lib/Libdis/disrss.c -@@ -140,6 +140,8 @@ short disrss( - else - locret = DIS_OVERFLOW; - -+ // fall through -+ - case DIS_OVERFLOW: - value = negate ? SHRT_MIN : SHRT_MAX; - } -diff --git a/src/lib/Libnet/net_client.c b/src/lib/Libnet/net_client.c -index 8f8542320b..a324c08197 100644 ---- a/src/lib/Libnet/net_client.c -+++ b/src/lib/Libnet/net_client.c -@@ -532,7 +532,7 @@ int client_to_svr( - break; - }/* Interrupted system call */ - -- /* fall through to next case */ -+ // fall through - - case EINVAL: /* Invalid argument */ - -@@ -583,6 +583,8 @@ int client_to_svr( - - goto retry; - } -+ -+ // fall through - - default: - -diff --git a/src/lib/Libnet/net_common.c b/src/lib/Libnet/net_common.c -index 7b36d31aa1..80bb78bee5 100644 ---- a/src/lib/Libnet/net_common.c -+++ b/src/lib/Libnet/net_common.c -@@ -405,6 +405,7 @@ int socket_connect_addr( - } - - /* essentially, only fall through for a transient failure */ -+ // fall through - - /* socket not ready for writing after 5 timeout */ - case EINVAL: /* Invalid argument */ -diff --git a/src/resmom/checkpoint.c b/src/resmom/checkpoint.c -index f178f48408..7e94b8b00a 100644 ---- a/src/resmom/checkpoint.c -+++ b/src/resmom/checkpoint.c -@@ -51,6 +51,8 @@ - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -+#include <string> -+#include <sstream> - #include <unistd.h> - #include <assert.h> - #include <dirent.h> -@@ -950,6 +952,7 @@ int blcr_checkpoint_job( - char sid[20]; - char *arg[20]; - char buf[1024]; -+ std::string err_msg; - int len; - char **ap; - FILE *fs; -@@ -1107,9 +1110,10 @@ int blcr_checkpoint_job( - - /* remove checkpoint directory that was created for this checkpoint attempt */ - -- sprintf(buf, "Checkpoint failed for job %s, removing checkpoint directory\n", -- pjob->ji_qs.ji_jobid); -- log_ext(-1, __func__, buf, LOG_DEBUG); -+ err_msg = "Checkpoint failed for job "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ err_msg += ", removing checkpoint directory\n"; -+ log_ext(-1, __func__, err_msg.c_str(), LOG_DEBUG); - - delete_blcr_checkpoint_files(pjob); - -@@ -1123,9 +1127,12 @@ int blcr_checkpoint_job( - - if (err != 0) - { -- sprintf(buf, "pbs_alterjob requested on job %s failed (%d-%s)\n", -- pjob->ji_qs.ji_jobid, err, pbs_strerror(err)); -- log_err(-1, __func__, buf); -+ std::ostringstream buf_s; -+ -+ buf_s << "pbs_alterjob requested on job " << pjob->ji_qs.ji_jobid << -+ " failed (" << err << "-" << pbs_strerror(err) << ")\n"; -+ err_msg = buf_s.str(); -+ log_err(-1, __func__, err_msg.c_str()); - if (err == PBSE_UNKJOBID) - { - /* TODO: GB - can the job exit while waiting for the checkpoint -@@ -1190,9 +1197,12 @@ int blcr_checkpoint_job( - - if (err != 0) - { -- sprintf(buf, "pbs_alterjob requested on job %s failed (%d-%s)\n", -- pjob->ji_qs.ji_jobid, err, pbs_strerror(err)); -- log_err(-1, __func__, buf); -+ std::ostringstream buf_s; -+ -+ buf_s << "pbs_alterjob requested on job " << pjob->ji_qs.ji_jobid << -+ " failed (" << err << "-" << pbs_strerror(err) << ")\n"; -+ err_msg = buf_s.str(); -+ log_err(-1, __func__, err_msg.c_str()); - if (err == PBSE_UNKJOBID) - { - /* TODO: GB - can the job exit while waiting for the checkpoint -@@ -1527,6 +1537,8 @@ int start_checkpoint( - pid_t pid; - int rc = PBSE_NONE; - char name_buffer[MAXPATHLEN + 1]; -+ std::ostringstream buf_s; -+ std::string buf; - time_t time_now; - - time_now = time((time_t *)0); -@@ -1548,11 +1560,10 @@ int start_checkpoint( - * to the pbs_server until the checkpoint has completed successfully. - */ - -- sprintf(name_buffer,"ckpt.%s.%d", -- pjob->ji_qs.ji_jobid, -- (int)time_now); -+ buf_s << "ckpt." << pjob->ji_qs.ji_jobid << "." << time_now; -+ buf = buf_s.str(); - -- decode_str(&pjob->ji_wattr[JOB_ATR_checkpoint_name], NULL, NULL, name_buffer, 0); -+ decode_str(&pjob->ji_wattr[JOB_ATR_checkpoint_name], NULL, NULL, buf.c_str(), 0); - - pjob->ji_wattr[JOB_ATR_checkpoint_name].at_flags = - ATR_VFLAG_SET | ATR_VFLAG_MODIFY; -@@ -1760,8 +1771,8 @@ int blcr_restart_job( - int pid; - char sid[20]; - char *arg[20]; -+ std::string err_msg; - extern char restart_script_name[MAXPATHLEN + 1]; -- char buf[1024]; - char namebuf[MAXPATHLEN + 1]; - char restartfile[MAXPATHLEN + 1]; - char script_buf[MAXPATHLEN + 1]; -@@ -1886,14 +1897,18 @@ int blcr_restart_job( - arg[6] = SET_ARG(pjob->ji_wattr[JOB_ATR_checkpoint_name].at_val.at_str); - arg[7] = NULL; - -- snprintf(buf, sizeof(buf), "restart args: %s %s %s %s %s %s %s", -- restart_script_name, sid, pjob->ji_qs.ji_jobid, -- SET_ARG(pjob->ji_wattr[JOB_ATR_euser].at_val.at_str), -- SET_ARG(pjob->ji_wattr[JOB_ATR_egroup].at_val.at_str), -- namebuf, -- SET_ARG(pjob->ji_wattr[JOB_ATR_checkpoint_name].at_val.at_str)); -- -- log_ext(-1, __func__, buf, LOG_DEBUG); -+ err_msg = "restart args: "; -+ err_msg += restart_script_name; -+ err_msg += " "; -+ err_msg += SET_ARG(pjob->ji_wattr[JOB_ATR_euser].at_val.at_str); -+ err_msg += " "; -+ err_msg += SET_ARG(pjob->ji_wattr[JOB_ATR_egroup].at_val.at_str); -+ err_msg += " "; -+ err_msg += namebuf; -+ err_msg += " "; -+ err_msg += SET_ARG(pjob->ji_wattr[JOB_ATR_checkpoint_name].at_val.at_str); -+ -+ log_ext(-1, __func__, err_msg.c_str(), LOG_DEBUG); - - log_close(0); - -diff --git a/src/resmom/generate_alps_status.c b/src/resmom/generate_alps_status.c -index 305d603874..286d6b02ef 100644 ---- a/src/resmom/generate_alps_status.c -+++ b/src/resmom/generate_alps_status.c -@@ -87,6 +87,7 @@ - #include "alps_constants.h" - #include "alps_functions.h" - #include <string> -+#include <sstream> - #include <vector> - #include <set> - #include <time.h> -@@ -586,9 +587,9 @@ int process_node( - ani.features += features.c_str(); - } - -- char node_index_buf[MAXLINE]; -- snprintf(node_index_buf, sizeof(node_index_buf), "node_index=%lu", alps_nodes.size()); -- ani.node_index = node_index_buf; -+ std::ostringstream ostr; -+ ostr << "node_index=" << alps_nodes.size(); -+ ani.node_index = ostr.str(); - - alps_nodes[nid] = ani; - -diff --git a/src/resmom/linux/mom_mach.c b/src/resmom/linux/mom_mach.c -index acaf81d467..8d8011a868 100644 ---- a/src/resmom/linux/mom_mach.c -+++ b/src/resmom/linux/mom_mach.c -@@ -3,6 +3,7 @@ - #include "lib_mom.h" /* header */ - - #include <string> -+#include <sstream> - #include <vector> - #include <assert.h> - #include <limits.h> -@@ -1221,6 +1222,7 @@ unsigned long cput_sum( - int fd; - int rc; - char buf[LOCAL_BUF_SIZE]; -+ std::string err_msg; - - pbs_attribute *pattr; - pattr = &pjob->ji_wattr[JOB_ATR_req_information]; -@@ -1234,8 +1236,11 @@ unsigned long cput_sum( - rc = cr->get_req_index_for_host(mom_alias, req_index); - if (rc != PBSE_NONE) - { -- sprintf(buf, "Could not find req for host %s, job_id %s", mom_alias, pjob->ji_qs.ji_jobid); -- log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, buf); -+ err_msg = "Could not find req for host "; -+ err_msg += mom_alias; -+ err_msg += ", job_id "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, err_msg.c_str()); - return(cputime); - } - -@@ -1272,8 +1277,11 @@ unsigned long cput_sum( - { - if (pjob->ji_cgroups_created == true) - { -- sprintf(buf, "failed to open %s: %s", full_cgroup_path.c_str(), strerror(errno)); -- log_err(-1, __func__, buf); -+ err_msg = "failed to open "; -+ err_msg += full_cgroup_path; -+ err_msg += ": "; -+ err_msg += strerror(errno); -+ log_err(-1, __func__, err_msg.c_str()); - } - return(0); - } -@@ -1281,8 +1289,11 @@ unsigned long cput_sum( - rc = read(fd, buf, LOCAL_BUF_SIZE); - if (rc == -1) - { -- sprintf(buf, "failed to read %s: %s", full_cgroup_path.c_str(), strerror(errno)); -- log_err(-1, __func__, buf); -+ err_msg = "failed to read "; -+ err_msg += full_cgroup_path; -+ err_msg += ": "; -+ err_msg += strerror(errno); -+ log_err(-1, __func__, err_msg.c_str()); - close(fd); - return(0); - } -@@ -1567,6 +1578,7 @@ unsigned long long resi_sum( - char buf[LOCAL_BUF_SIZE]; - int fd; - int rc; -+ std::string err_msg; - - pbs_attribute *pattr; - pattr = &pjob->ji_wattr[JOB_ATR_req_information]; -@@ -1579,8 +1591,11 @@ unsigned long long resi_sum( - rc = cr->get_req_index_for_host(mom_alias, req_index); - if (rc != PBSE_NONE) - { -- sprintf(buf, "Could not find req for host %s, job_id %s", mom_alias, pjob->ji_qs.ji_jobid); -- log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, buf); -+ err_msg = "Could not find req for host "; -+ err_msg += mom_alias; -+ err_msg += ", job_id "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, err_msg.c_str()); - return(resisize); - } - -@@ -1614,8 +1629,11 @@ unsigned long long resi_sum( - { - if (pjob->ji_cgroups_created == true) - { -- sprintf(buf, "failed to open %s: %s", full_cgroup_path.c_str(), strerror(errno)); -- log_err(-1, __func__, buf); -+ err_msg = "failed to open "; -+ err_msg += full_cgroup_path; -+ err_msg += ": "; -+ err_msg += strerror(errno); -+ log_err(-1, __func__, err_msg.c_str()); - } - - return(0); -@@ -1624,8 +1642,11 @@ unsigned long long resi_sum( - rc = read(fd, buf, LOCAL_BUF_SIZE); - if (rc == -1) - { -- sprintf(buf, "failed to read %s: %s", full_cgroup_path.c_str(), strerror(errno)); -- log_err(-1, __func__, buf); -+ err_msg = "failed to read "; -+ err_msg += full_cgroup_path; -+ err_msg += ": "; -+ err_msg += strerror(errno); -+ log_err(-1, __func__, err_msg.c_str()); - close(fd); - return(0); - } -@@ -1637,8 +1658,9 @@ unsigned long long resi_sum( - buf2 = strstr(buf, "\nrss "); - if (buf2 == NULL) - { -- sprintf(buf, "read failed finding rss %s", full_cgroup_path.c_str()); -- log_err(errno, __func__, buf); -+ err_msg = "read failed finding rss "; -+ err_msg += full_cgroup_path; -+ log_err(errno, __func__, err_msg.c_str()); - close(fd); - return(0); - } -@@ -4983,16 +5005,17 @@ void scan_non_child_tasks(void) - - if (!found) - { -- char buf[MAXLINE]; -+ std::ostringstream sbuf; -+ std::string buf; - - extern int exiting_tasks; - -- sprintf(buf, "found exited session %d for task %d in job %s", -- pTask->ti_qs.ti_sid, -- pTask->ti_qs.ti_task, -- pJob->ji_qs.ji_jobid); -+ sbuf << "found exited session " << pTask->ti_qs.ti_sid << -+ " for task " << pTask->ti_qs.ti_task << " in job " << -+ pJob->ji_qs.ji_jobid; -+ buf = sbuf.str(); - -- log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, buf); -+ log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, buf.c_str()); - - pTask->ti_qs.ti_exitstat = 0; /* actually unknown */ - pTask->ti_qs.ti_status = TI_STATE_EXITED; -@@ -5006,10 +5029,11 @@ void scan_non_child_tasks(void) - - if (LOGLEVEL >= 7) - { -- sprintf(buf, "marking job as MOM_JOB_RECOVERY for task %d", -- pTask->ti_qs.ti_task); -+ sbuf << "marking job as MOM_JOB_RECOVERY for task " << -+ pTask->ti_qs.ti_task); -+ buf = sbuf.str(); - -- log_event(PBSEVENT_DEBUG, PBS_EVENTCLASS_JOB, pJob->ji_qs.ji_jobid, buf); -+ log_event(PBSEVENT_DEBUG, PBS_EVENTCLASS_JOB, pJob->ji_qs.ji_jobid, buf.c_str()); - } - } - #endif /* USESAVEDRESOURCES */ -@@ -5075,7 +5099,6 @@ const char *idletime( - DIR *dp; - - struct dirent *de; -- char ttyname[50]; - time_t curtm; - - if (attrib) -@@ -5104,16 +5127,18 @@ const char *idletime( - - while ((de = readdir(dp)) != NULL) - { -+ std::string ttyname; -+ - if (maxtm >= curtm) - break; - - if (strncmp(de->d_name, "tty", 3)) - continue; - -- sprintf(ttyname, "/dev/%s", -- de->d_name); -+ ttyname = "/dev/"; -+ ttyname += de->d_name; - -- setmax(ttyname); -+ setmax(ttyname.c_str()); - } - - closedir(dp); -diff --git a/src/resmom/mom_main.c b/src/resmom/mom_main.c -index 2d8453a15f..35896e58b1 100644 ---- a/src/resmom/mom_main.c -+++ b/src/resmom/mom_main.c -@@ -1067,7 +1067,7 @@ char *conf_res( - goto done; - } - -- name[i] = '\0'; -+ name[i] = NULL; - - for (d = ret_string, resline++;*resline;) - { -@@ -6519,17 +6519,17 @@ void prepare_child_tasks_for_delete() - for (unsigned int i = 0; i < pJob->ji_tasks->size(); i++) - { - task *pTask = pJob->ji_tasks->at(i); -- -- char buf[128]; -+ std::ostringstream sbuf; -+ std::string buf; - - extern int exiting_tasks; - -- sprintf(buf, "preparing exited session %d for task %d in job %s for deletion", -- pTask->ti_qs.ti_sid, -- pTask->ti_qs.ti_task, -- pJob->ji_qs.ji_jobid); -+ sbuf << "preparing exited session " << pTask->ti_qs.ti_sid << -+ " for task " << pTask->ti_qs.ti_task << " in job " << -+ pJob->ji_qs.ji_jobid << " for deletion"; -+ buf = sbuf.str(); - -- log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, buf); -+ log_event(PBSEVENT_JOB, PBS_EVENTCLASS_JOB, __func__, buf.c_str()); - - pTask->ti_qs.ti_exitstat = 0; /* actually unknown */ - pTask->ti_qs.ti_status = TI_STATE_EXITED; -diff --git a/src/resmom/mom_req_quejob.c b/src/resmom/mom_req_quejob.c -index 2211f52d55..4e10581184 100644 ---- a/src/resmom/mom_req_quejob.c -+++ b/src/resmom/mom_req_quejob.c -@@ -743,11 +743,15 @@ void req_mvjobfile( - - if (pj == NULL) - { -- snprintf(log_buffer, 1024, "cannot find job %s for move of %s file", -- preq->rq_ind.rq_jobfile.rq_jobid, -- TJobFileType[jft]); -+ std::string err_msg; - -- log_err(-1, __func__, log_buffer); -+ err_msg = "cannot find job "; -+ err_msg += preq->rq_ind.rq_jobfile.rq_jobid; -+ err_msg += " for move of "; -+ err_msg += TJobFileType[jft]; -+ err_msg += " file"; -+ -+ log_err(-1, __func__, err_msg.c_str()); - - req_reject(PBSE_UNKJOBID, 0, preq, NULL, NULL); - -diff --git a/src/resmom/mom_server.c b/src/resmom/mom_server.c -index f90c2cd227..e03395225a 100644 ---- a/src/resmom/mom_server.c -+++ b/src/resmom/mom_server.c -@@ -1900,7 +1900,6 @@ void mom_server_diag( - std::stringstream &output) - - { -- char tmpLine[1024]; - time_t Now; - - if (pms->pbs_servername[0] == '\0') -@@ -1910,22 +1909,18 @@ void mom_server_diag( - - time(&Now); - -- sprintf(tmpLine, "Server[%d]: %s (%s)\n", -- sindex, -- pms->pbs_servername, -- netaddr(&(pms->sock_addr))); -- -- output << tmpLine; -+ output << "Server[" << sindex << "]: " << pms->pbs_servername << -+ " (" << netaddr(&(pms->sock_addr)) << ")\n"; - - if (pms->MOMSendStatFailure[0] != '\0') - { -- sprintf(tmpLine, " WARNING: could not open connection to server, %s%s\n", -- pms->MOMSendStatFailure, -- (strstr(pms->MOMSendStatFailure, "cname") != NULL) ? -- " (check name resolution - /etc/hosts?)" : -- ""); -+ output << " WARNING: could not open connection to server, " << -+ pms->MOMSendStatFailure; -+ -+ if (strstr(pms->MOMSendStatFailure, "cname") != NULL) -+ output << " (check name resolution - /etc/hosts?)"; - -- output << tmpLine; -+ output << "\n"; - } - - if (TMOMRejectConn[0] != '\0') -@@ -1935,30 +1930,26 @@ void mom_server_diag( - - if (pms->MOMLastRecvFromServerTime > 0) - { -- sprintf(tmpLine, " Last Msg From Server: %ld seconds (%s)\n", -- (long)Now - pms->MOMLastRecvFromServerTime, -- (pms->MOMLastRecvFromServerCmd[0] != '\0') ? -- pms->MOMLastRecvFromServerCmd : "N/A"); -+ output << " Last Msg From Server: " << -+ ((long)Now - pms->MOMLastRecvFromServerTime) << " seconds (" << -+ ((pms->MOMLastRecvFromServerCmd[0] != '\0') ? -+ pms->MOMLastRecvFromServerCmd : "N/A") << "\n"; - } - else - { -- sprintf(tmpLine, " WARNING: no messages received from server\n"); -+ output << " WARNING: no messages received from server\n"; - } - -- output << tmpLine; -- - if (pms->MOMLastSendToServerTime > 0) - { -- sprintf(tmpLine, " Last Msg To Server: %ld seconds\n", -- (long)Now - pms->MOMLastSendToServerTime); -+ output << " Last Msg To Server: " << -+ ((long)Now - pms->MOMLastSendToServerTime) << " seconds\n"; - } - else - { -- sprintf(tmpLine, " WARNING: no messages sent to server\n"); -+ output << " WARNING: no messages sent to server\n"; - } - -- output << tmpLine; -- - return; - } /* END mom_server_diag() */ - -diff --git a/src/resmom/parse_config.c b/src/resmom/parse_config.c -index 8c4bb8585d..35efb7880e 100644 ---- a/src/resmom/parse_config.c -+++ b/src/resmom/parse_config.c -@@ -2385,14 +2385,14 @@ void reset_config_vars() - mom_host[0] = '\0'; - hostname_specified = 0; - MOMConfigRReconfig = 0; -- TNoSpoolDirList[0] = '\0'; -+ TNoSpoolDirList[0] = NULL; - is_reporter_mom = FALSE; - is_login_node = FALSE; - job_exit_wait_time = DEFAULT_JOB_EXIT_WAIT_TIME; - jobstarter_exe_name[0] = '\0'; - jobstarter_set = 0; - server_alias = NULL; -- TRemChkptDirList[0] = '\0'; -+ TRemChkptDirList[0] = NULL; - tmpdir_basename[0] = '\0'; /* for $TMPDIR */ - rcp_path[0] = '\0'; - rcp_args[0] = '\0'; -diff --git a/src/resmom/requests.c b/src/resmom/requests.c -index 588905e4e3..6fce46cdfb 100644 ---- a/src/resmom/requests.c -+++ b/src/resmom/requests.c -@@ -1490,16 +1490,16 @@ void req_modifyjob( - int rc; - unsigned int momport = 0; - -- char tmpLine[1024]; -+ std::string tmpLine; - - pjob = mom_find_job(preq->rq_ind.rq_modify.rq_objname); - - if (pjob == NULL) - { -- sprintf(tmpLine, "modify job failed, unknown job %s", -- preq->rq_ind.rq_modify.rq_objname); -+ tmpLine = "modify job failed, unknown job "; -+ tmpLine += preq->rq_ind.rq_modify.rq_objname; - -- req_reject(PBSE_UNKJOBID, 0, preq, mom_host, tmpLine); -+ req_reject(PBSE_UNKJOBID, 0, preq, mom_host, tmpLine.c_str()); - - return; - } -diff --git a/src/scheduler.cc/samples/fifo/dedtime.c b/src/scheduler.cc/samples/fifo/dedtime.c -index b919ec8946..246bd4f8af 100644 ---- a/src/scheduler.cc/samples/fifo/dedtime.c -+++ b/src/scheduler.cc/samples/fifo/dedtime.c -@@ -118,7 +118,7 @@ int parse_ded_file(const char *filename) - - i = 0; - -- memset(conf.ded_time, 0, MAX_DEDTIME_SIZE); -+ memset(conf.ded_time, 0, sizeof(struct timegap) * MAX_DEDTIME_SIZE); - - while (fgets(line, 256, fp) != NULL) - { -diff --git a/src/server/array_func.c b/src/server/array_func.c -index fabe4541fa..8f5caf0520 100644 ---- a/src/server/array_func.c -+++ b/src/server/array_func.c -@@ -4,7 +4,7 @@ - - included functions: - -- is_array() determine if jobnum is actually an array identifyer -+ is_id_array() determine if jobnum is actually an array identifyer - get_array() return array struct for given "parent id" - array_save() save array struct to disk - array_get_parent_id() return id of parent job if job belongs to a job array -@@ -90,7 +90,7 @@ void force_purge_work(job *pjob); - - /* search job array list to determine if id is a job array */ - --int is_array( -+int is_id_array( - - char *id) - -@@ -154,7 +154,7 @@ int is_array( - allarrays.unlock(); - - return(rc); -- } /* END is_array() */ -+ } /* END is_id_array() */ - - - -diff --git a/src/server/array_func.h b/src/server/array_func.h -index 6cb1b84c9c..70e3d326f7 100644 ---- a/src/server/array_func.h -+++ b/src/server/array_func.h -@@ -8,7 +8,7 @@ - #include "batch_request.h" /* batch_request */ - - --int is_array(char *id); -+int is_id_array(char *id); - - int array_save(job_array *pa); - -diff --git a/src/server/job_func.c b/src/server/job_func.c -index dbc47de458..8922deab35 100644 ---- a/src/server/job_func.c -+++ b/src/server/job_func.c -@@ -2387,22 +2387,36 @@ int fix_cray_exec_hosts( - - - -+// change job id from x.y to x-0.y - - int change_external_job_name( - - job *pjob) - - { -- char tmp_jobid[PBS_MAXSVRJOBID + 1]; -- char *dot = strchr(pjob->ji_qs.ji_jobid, '.'); -+ std::string jobid_new; -+ size_t pos; - -- if (dot != NULL) -- *dot = '\0'; -+ // null job pointer -+ if (pjob == NULL) -+ return(-1); - -- snprintf(tmp_jobid, sizeof(tmp_jobid), "%s-0.%s", -- pjob->ji_qs.ji_jobid, dot + 1); -+ // copy original job id -+ jobid_new = pjob->ji_qs.ji_jobid; -+ -+ // make sure job id has a . -+ if ((pos = jobid_new.find('.', 0)) == std::string::npos) -+ return(-1); -+ -+ // change "." to "-0." -+ jobid_new.replace(pos, 1, "-0."); -+ -+ // confirm new string will fit -+ if (jobid_new.length() > PBS_MAXSVRJOBID) -+ return(-1); - -- strcpy(pjob->ji_qs.ji_jobid, tmp_jobid); -+ // update original -+ strncpy(pjob->ji_qs.ji_jobid, jobid_new.c_str(), PBS_MAXSVRJOBID); - - return(PBSE_NONE); - } /* END change_external_job_name() */ -diff --git a/src/server/node_attr_def.c b/src/server/node_attr_def.c -index 37aa121ca2..386f12b32d 100644 ---- a/src/server/node_attr_def.c -+++ b/src/server/node_attr_def.c -@@ -380,7 +380,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -392,7 +392,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -404,7 +404,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -416,7 +416,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -428,7 +428,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -440,7 +440,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -452,7 +452,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -@@ -464,7 +464,7 @@ attribute_def node_attr_def[] = - set_l, - comp_null, - free_null, -- NULL_FUNC, -+ NULL_FUNC, - NO_USER_SET, - ATR_TYPE_LONG, - PARENT_TYPE_NODE, -diff --git a/src/server/node_manager.c b/src/server/node_manager.c -index 663b741da6..92c4d73f8a 100644 ---- a/src/server/node_manager.c -+++ b/src/server/node_manager.c -@@ -924,9 +924,10 @@ void process_legacy_job_attribute_information( - { - char *attr_name = threadsafe_tokenizer(&attr_val, "="); - -- if ((attr_name != NULL) && -- (attr_val != '\0')) -+ if ((attr_name != NULL) && (*attr_name != '\0') && -+ (attr_val != NULL) && (*attr_val != '\0')) - { -+ // convert attr_name, attr_val strings to an attribute - if (str_to_attr(attr_name, attr_val, pjob->ji_wattr, job_attr_def, JOB_ATR_LAST) == ATTR_NOT_FOUND) - { - // should be resources used if not found as attribute -diff --git a/src/server/pbsd_init.c b/src/server/pbsd_init.c -index 0233800586..1a639ab2dc 100644 ---- a/src/server/pbsd_init.c -+++ b/src/server/pbsd_init.c -@@ -2667,6 +2667,8 @@ int pbsd_init_job( - - svr_setjobstate(pjob, JOB_STATE_COMPLETE, JOB_SUBSTATE_COMPLETE, FALSE); - -+ // fall through -+ - - case JOB_SUBSTATE_COMPLETE: - -diff --git a/src/server/process_request.c b/src/server/process_request.c -index e7f243f58e..ec1935cca4 100644 ---- a/src/server/process_request.c -+++ b/src/server/process_request.c -@@ -795,7 +795,7 @@ int dispatch_request( - * req_deletejob() function. - */ - -- if (is_array(request->rq_ind.rq_delete.rq_objname)) -+ if (is_id_array(request->rq_ind.rq_delete.rq_objname)) - rc = req_deletearray(request); - else - rc = req_deletejob(request); -@@ -803,7 +803,7 @@ int dispatch_request( - break; - - case PBS_BATCH_HoldJob: -- if (is_array(request->rq_ind.rq_hold.rq_orig.rq_objname)) -+ if (is_id_array(request->rq_ind.rq_hold.rq_orig.rq_objname)) - rc = req_holdarray(request); - else - rc = req_holdjob(request); -@@ -843,7 +843,7 @@ int dispatch_request( - case PBS_BATCH_AsyModifyJob: - - case PBS_BATCH_ModifyJob: -- if (is_array(request->rq_ind.rq_delete.rq_objname)) -+ if (is_id_array(request->rq_ind.rq_delete.rq_objname)) - rc = req_modifyarray(request); - else - req_modifyjob(request); -@@ -888,7 +888,7 @@ int dispatch_request( - - case PBS_BATCH_ReleaseJob: - -- if (is_array(request->rq_ind.rq_delete.rq_objname)) -+ if (is_id_array(request->rq_ind.rq_delete.rq_objname)) - rc = req_releasearray(request); - else - rc = req_releasejob(request); -@@ -972,7 +972,7 @@ int dispatch_request( - - case PBS_BATCH_RegistDep: - -- if (is_array(request->rq_ind.rq_register.rq_parent)) -+ if (is_id_array(request->rq_ind.rq_register.rq_parent)) - { - rc = req_registerarray(request); - } -diff --git a/src/server/req_quejob.c b/src/server/req_quejob.c -index e30acbb59d..5ce1ec3fdf 100644 ---- a/src/server/req_quejob.c -+++ b/src/server/req_quejob.c -@@ -326,7 +326,7 @@ void sum_select_mem_request( - tmp = atoi(current); - - /* advance past the digits to the units */ -- while ((current != '\0') && -+ while ((*current != '\0') && - (isdigit(*current))) - current++; - -diff --git a/src/server/req_runjob.c b/src/server/req_runjob.c -index 8b128b8dba..59dbe77b48 100644 ---- a/src/server/req_runjob.c -+++ b/src/server/req_runjob.c -@@ -1676,8 +1676,14 @@ job *chk_job_torun( - - if ((pjob->ji_qs.ji_state != JOB_STATE_QUEUED) && (pjob->ji_qs.ji_state != JOB_STATE_HELD)) - { -- sprintf(EMsg, "job %s state %s", pjob->ji_qs.ji_jobid, PJobState[pjob->ji_qs.ji_state]); -- req_reject(PBSE_BADSTATE, 0, preq, NULL, EMsg); -+ std::string err_msg; -+ -+ err_msg = "job "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ err_msg += " state "; -+ err_msg += PJobState[pjob->ji_qs.ji_state]; -+ -+ req_reject(PBSE_BADSTATE, 0, preq, NULL, err_msg.c_str()); - return(NULL); - } - -diff --git a/src/server/req_stat.c b/src/server/req_stat.c -index 21a608aeee..392f22772e 100644 ---- a/src/server/req_stat.c -+++ b/src/server/req_stat.c -@@ -241,7 +241,7 @@ int req_stat_job( - { - /* status a single job */ - -- if (is_array(name)) -+ if (is_id_array(name)) - { - if (type != tjstSummarizeArraysServer) - { -diff --git a/src/server/svr_chk_owner.c b/src/server/svr_chk_owner.c -index 4b33c57226..b98135710e 100644 ---- a/src/server/svr_chk_owner.c -+++ b/src/server/svr_chk_owner.c -@@ -413,9 +413,8 @@ int authenticate_user( - - { - int rc; -- char uath[PBS_MAXUSER + PBS_MAXHOSTNAME + 1]; - time_t time_now = time(NULL); -- char error_msg[1024]; -+ std::string error_msg; - long acl_enabled = FALSE; - - #ifdef MUNGE_AUTH -@@ -437,9 +436,14 @@ int authenticate_user( - if ((acl_check_my_array_string(my_acl, uh, ACL_User_Host)) == 0) - { - *autherr = strdup("User not in authorized user list."); -- sprintf(error_msg, "%s Requested user %s: requested from host %s", -- *autherr, preq->rq_user, preq->rq_host); -- log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, error_msg); -+ -+ error_msg = *autherr; -+ error_msg += " Requested user "; -+ error_msg += preq->rq_user; -+ error_msg += ": requested from host "; -+ error_msg += preq->rq_host; -+ -+ log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, error_msg.c_str()); - return(PBSE_BADCRED); - } - } -@@ -447,9 +451,16 @@ int authenticate_user( - if (strncmp(preq->rq_user, pcred->username, PBS_MAXUSER)) - { - *autherr = strdup("Users do not match"); -- sprintf(error_msg, "%s: Requested user %s: credential user %s: requested from host %s", -- *autherr, preq->rq_user, pcred->username, preq->rq_host); -- log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, error_msg); -+ -+ error_msg = *autherr; -+ error_msg += " Requested user "; -+ error_msg += preq->rq_user; -+ error_msg += ": credential user "; -+ error_msg += pcred->username; -+ error_msg += ": requested from host "; -+ error_msg += preq->rq_host; -+ -+ log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, error_msg.c_str()); - return(PBSE_BADCRED); - } - #endif -@@ -481,10 +492,14 @@ int authenticate_user( - (memcmp(sai1, sai2, sizeof(struct sockaddr_in)))) - { - *autherr = strdup("Hosts do not match"); -- -- sprintf(error_msg, "%s: Requested host %s: credential host: %s", -- *autherr, preq->rq_host, pcred->hostname); -- log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, error_msg); -+ -+ error_msg = *autherr; -+ error_msg += ": Requested host "; -+ error_msg += preq->rq_host; -+ error_msg += ": credential host: "; -+ error_msg += pcred->hostname; -+ -+ log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, error_msg.c_str()); - - return(PBSE_BADCRED); - } -@@ -520,10 +535,14 @@ int authenticate_user( - if (acl_enabled) - { - struct array_strings *acl_users = NULL; -- snprintf(uath, sizeof(uath), "%s@%s", preq->rq_user, preq->rq_host); -+ std::string uath; -+ -+ uath = preq->rq_user; -+ uath += "@"; -+ uath = preq->rq_host; - - get_svr_attr_arst(SRV_ATR_AclUsers, &acl_users); -- if (acl_check_my_array_string(acl_users, uath, ACL_User) == 0) -+ if (acl_check_my_array_string(acl_users, uath.c_str(), ACL_User) == 0) - { - int my_err; - pbs_net_t connect_addr = get_hostaddr(&my_err, preq->rq_host); -diff --git a/src/test/catch_child/scaffolding.c b/src/test/catch_child/scaffolding.c -index 7db1077854..f08383d01e 100644 ---- a/src/test/catch_child/scaffolding.c -+++ b/src/test/catch_child/scaffolding.c -@@ -1012,6 +1012,7 @@ int DIS_reply_read(struct tcp_chan *chan, struct batch_reply *preply) - { - case 1: - rc = 1; -+ // fall through - case 2: - preply->brp_code = PBSE_NONE; - LOGLEVEL = 4; -diff --git a/src/test/geteusernam/scaffolding.c b/src/test/geteusernam/scaffolding.c -index ec849ab6df..f2cb83be16 100644 ---- a/src/test/geteusernam/scaffolding.c -+++ b/src/test/geteusernam/scaffolding.c -@@ -64,7 +64,7 @@ void get_jobowner(char *from, char *to) - exit(1); - } - --int acl_check_my_array_string(struct array_strings *pas, char *name, int type) -+int acl_check_my_array_string(struct array_strings *pas, const char *name, int type) - { - return(0); - } -diff --git a/src/test/node_manager/test_uut.c b/src/test/node_manager/test_uut.c -index 75c23b39af..b4aa98912f 100644 ---- a/src/test/node_manager/test_uut.c -+++ b/src/test/node_manager/test_uut.c -@@ -284,12 +284,12 @@ END_TEST - START_TEST(test_kill_job_on_mom) - { - struct pbsnode pnode; -- char job_id[20]; -+ char *job_id; - int rc; - unsigned long addr = 4567; - - memset(&pnode, 0, sizeof(pnode)); -- strcpy(job_id, "33.torque-devtest-03"); -+ job_id = strdup("33.torque-devtest-03"); - - pnode.change_name("numa3.ac"); - pnode.nd_mom_port = 1234; -diff --git a/src/test/pbs_log/scaffolding.c b/src/test/pbs_log/scaffolding.c -index fc5878c601..d63f053851 100644 ---- a/src/test/pbs_log/scaffolding.c -+++ b/src/test/pbs_log/scaffolding.c -@@ -37,8 +37,7 @@ DIR *opendir(const char *name) - - int closedir(DIR *dirp) - { -- if (dirp != NULL) -- free(dirp); -+ free(dirp); - return(0); - } - -diff --git a/src/test/pbsd_main/scaffolding.c b/src/test/pbsd_main/scaffolding.c -index 90110e8fe8..0d7179a795 100644 ---- a/src/test/pbsd_main/scaffolding.c -+++ b/src/test/pbsd_main/scaffolding.c -@@ -407,7 +407,7 @@ int get_svr_attr_arst(int index, struct array_strings **arst) - return(0); - } - --int acl_check_my_array_string(struct array_strings *pas, char *name, int type) -+int acl_check_my_array_string(struct array_strings *pas, const char *name, int type) - { - return(0); - } -diff --git a/src/test/process_alps_status/scaffolding.c b/src/test/process_alps_status/scaffolding.c -index dd8ab2c577..3c6449aa70 100644 ---- a/src/test/process_alps_status/scaffolding.c -+++ b/src/test/process_alps_status/scaffolding.c -@@ -713,6 +713,8 @@ int set_arst( - pas->as_next = pas->as_buf; - - /* no break, "SET" falls into "MERGE" to add strings */ -+ // fall through -+ - case INCR_OLD: - case MERGE: - -diff --git a/src/test/process_request/scaffolding.c b/src/test/process_request/scaffolding.c -index 66618f8900..36aff63746 100644 ---- a/src/test/process_request/scaffolding.c -+++ b/src/test/process_request/scaffolding.c -@@ -373,9 +373,9 @@ int req_modify_node(struct batch_request *preq) - } - - --int is_array(char *id) -+int is_id_array(char *id) - { -- fprintf(stderr, "The call to is_array needs to be mocked!!\n"); -+ fprintf(stderr, "The call to is_id_array needs to be mocked!!\n"); - exit(1); - } - -@@ -489,7 +489,7 @@ int get_svr_attr_b(int index, bool *b) - return(0); - } - --int acl_check_my_array_string(struct array_strings *pas, char *name, int type) -+int acl_check_my_array_string(struct array_strings *pas, const char *name, int type) - { - return(0); - } -diff --git a/src/test/req_stat/scaffolding.c b/src/test/req_stat/scaffolding.c -index cbba4d809a..80f1956d61 100644 ---- a/src/test/req_stat/scaffolding.c -+++ b/src/test/req_stat/scaffolding.c -@@ -221,9 +221,9 @@ int svr_connect(pbs_net_t hostaddr, unsigned int port, int *err, struct pbsnode - exit(1); - } - --int is_array(char *id) -+int is_id_array(char *id) - { -- fprintf(stderr, "The call to is_array to be mocked!!\n"); -+ fprintf(stderr, "The call to is_id_array to be mocked!!\n"); - exit(1); - } - -diff --git a/src/test/svr_chk_owner/scaffolding.c b/src/test/svr_chk_owner/scaffolding.c -index 6d00f6e381..59a8c84e95 100644 ---- a/src/test/svr_chk_owner/scaffolding.c -+++ b/src/test/svr_chk_owner/scaffolding.c -@@ -79,7 +79,7 @@ int get_svr_attr_arst(int index, struct array_strings **arst) - return(0); - } - --int acl_check_my_array_string(struct array_strings *pas, char *name, int type) -+int acl_check_my_array_string(struct array_strings *pas, const char *name, int type) - { - return(0); - } -diff --git a/torque.setup.in b/torque.setup.in -index 15716c9b97..b0f2ee305f 100644 ---- a/torque.setup.in -+++ b/torque.setup.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/bin/bash - # - # torque.setup - create pbs_server database and default queue - # ---- a/src/server/svr_jobfunc.c 2017-08-29 22:25:11.000000000 -0000 -+++ b/src/server/svr_jobfunc.c 2019-10-22 14:29:39.465723637 -0000 -@@ -4015,16 +4015,18 @@ - - { - int rc = PBSE_NONE; -- char *err_msg = NULL; -- char stub_msg[] = "no pos"; -+ std::string err_msg; - - if (logging >= 10) - { -- err_msg = (char *)calloc(1, MSG_LEN_LONG); -- if (msg == NULL) -- msg = stub_msg; -- snprintf(err_msg, MSG_LEN_LONG, "locking %s in method %s-%s", pjob->ji_qs.ji_jobid, id, msg); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "locking "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ err_msg += " in method "; -+ err_msg += id; -+ err_msg += "-"; -+ if (msg != NULL) -+ err_msg += msg; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - - if (pjob->ji_mutex != NULL) -@@ -4033,9 +4035,11 @@ - { - if (logging >= 20) - { -- snprintf(err_msg, MSG_LEN_LONG, "ALERT: cannot lock job %s mutex in method %s", -- pjob->ji_qs.ji_jobid, id); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "ALERT: cannot lock job "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ err_msg += " mutex in method "; -+ err_msg += id; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - rc = PBSE_MUTEX; - } -@@ -4046,9 +4050,6 @@ - log_err(rc, __func__, "Uninitialized mutex pass to pthread_mutex_lock!"); - } - -- if (err_msg != NULL) -- free(err_msg); -- - return rc; - } - -@@ -4063,16 +4064,18 @@ - - { - int rc = PBSE_NONE; -- char *err_msg = NULL; -- char stub_msg[] = "no pos"; -+ std::string err_msg; - - if (logging >= 10) - { -- err_msg = (char *)calloc(1, MSG_LEN_LONG); -- if (msg == NULL) -- msg = stub_msg; -- snprintf(err_msg, MSG_LEN_LONG, "unlocking %s in method %s-%s", pjob->ji_qs.ji_jobid, id, msg); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "unlocking "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ err_msg += " in method "; -+ err_msg += id; -+ err_msg += "-"; -+ if (msg != NULL) -+ err_msg += msg; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - - if (pjob->ji_mutex != NULL) -@@ -4081,9 +4084,11 @@ - { - if (logging >= 20) - { -- snprintf(err_msg, MSG_LEN_LONG, "ALERT: cannot unlock job %s mutex in method %s", -- pjob->ji_qs.ji_jobid, id); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "ALERT: cannot unlock job "; -+ err_msg += pjob->ji_qs.ji_jobid; -+ err_msg += " mutex in method "; -+ err_msg += id; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - rc = PBSE_MUTEX; - } -@@ -4094,9 +4099,6 @@ - log_err(rc, __func__, "Uninitialized mutex pass to pthread_mutex_unlock!"); - } - -- if (err_msg != NULL) -- free(err_msg); -- - return rc; - } - -@@ -4110,32 +4112,33 @@ - - { - int rc = PBSE_NONE; -- char *err_msg = NULL; -- char stub_msg[] = "no pos"; -+ std::string err_msg; - - if (logging >= 10) - { -- err_msg = (char *)calloc(1, MSG_LEN_LONG); -- if (msg == NULL) -- msg = stub_msg; -- snprintf(err_msg, MSG_LEN_LONG, "locking %s in method %s-%s", pa->ai_qs.parent_id, id, msg); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "locking "; -+ err_msg += pa->ai_qs.parent_id, -+ err_msg += " in method "; -+ err_msg += id; -+ err_msg += "-"; -+ if (msg != NULL) -+ err_msg += msg; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - - if (pthread_mutex_lock(pa->ai_mutex) != 0) - { - if (logging >= 20) - { -- snprintf(err_msg, MSG_LEN_LONG, "ALERT: cannot lock job array %s mutex in method %s", -- pa->ai_qs.parent_id, id); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "ALERT: cannot lock job array "; -+ err_msg += pa->ai_qs.parent_id, -+ err_msg += " mutex in method "; -+ err_msg += id; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - rc = PBSE_MUTEX; - } - -- if (err_msg != NULL) -- free(err_msg); -- - return rc; - } - -@@ -4149,32 +4152,33 @@ - - { - int rc = PBSE_NONE; -- char *err_msg = NULL; -- char stub_msg[] = "no pos"; -+ std::string err_msg; - - if (logging >= 10) - { -- err_msg = (char *)calloc(1, MSG_LEN_LONG); -- if (msg == NULL) -- msg = stub_msg; -- snprintf(err_msg, MSG_LEN_LONG, "unlocking %s in method %s-%s", pa->ai_qs.parent_id, id, msg); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "unlocking "; -+ err_msg += pa->ai_qs.parent_id, -+ err_msg += " in method "; -+ err_msg += id; -+ err_msg += "-"; -+ if (msg != NULL) -+ err_msg += msg; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - - if (pthread_mutex_unlock(pa->ai_mutex) != 0) - { - if (logging >= 20) - { -- snprintf(err_msg, MSG_LEN_LONG, "ALERT: cannot unlock job array %s mutex in method %s", -- pa->ai_qs.parent_id, id); -- log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg); -+ err_msg = "ALERT: cannot unlock job array "; -+ err_msg += pa->ai_qs.parent_id, -+ err_msg += " mutex in method "; -+ err_msg += id; -+ log_record(PBSEVENT_DEBUG, PBS_EVENTCLASS_NODE, id, err_msg.c_str()); - } - rc = PBSE_MUTEX; - } - -- if (err_msg != NULL) -- free(err_msg); -- - return rc; - } - diff --git a/sys-cluster/torque/torque-6.0.4-r1.ebuild b/sys-cluster/torque/torque-6.0.4-r1.ebuild index 6f18c0252662..b551a3e06694 100644 --- a/sys-cluster/torque/torque-6.0.4-r1.ebuild +++ b/sys-cluster/torque/torque-6.0.4-r1.ebuild @@ -7,7 +7,8 @@ inherit autotools flag-o-matic linux-info DESCRIPTION="Resource manager and queuing system based on OpenPBS" HOMEPAGE="http://www.adaptivecomputing.com/products/open-source/torque" -SRC_URI="https://github.com/adaptivecomputing/torque/archive/6a0b37f85c7d644e9217cbab1542792d646f59a6.tar.gz -> ${P}-gh-20170829.tar.gz" +SRC_URI="https://github.com/adaptivecomputing/torque/archive/6a0b37f85c7d644e9217cbab1542792d646f59a6.tar.gz -> ${P}-gh-20170829.tar.gz + https://dev.gentoo.org/~juippis/distfiles/tmp/torque-6.0.4-gcc7.patch" LICENSE="torque-2.5" SLOT="0" @@ -47,7 +48,7 @@ RDEPEND="${DEPEND_COMMON} S="${WORKDIR}"/${PN}-6a0b37f85c7d644e9217cbab1542792d646f59a6 PATCHES=( - "${FILESDIR}"/${P}-gcc7.patch + "${DISTDIR}"/${P}-gcc7.patch "${FILESDIR}"/${PN}-6.0.3-fix-emptystring-comparison.patch "${FILESDIR}"/${P}-no-openssl.patch "${FILESDIR}"/${P}-error_buf_overflow_prevent.patch |