View | Details | Raw Unified | Return to ticket 16424
Collapse All | Expand All

(-)a/src/common/slurmdbd_pack.c (+24 lines)
Lines 54-59 strong_alias(pack_slurmdbd_msg, slurm_pack_slurmdbd_msg); Link Here
54
strong_alias(unpack_slurmdbd_msg, slurm_unpack_slurmdbd_msg);
54
strong_alias(unpack_slurmdbd_msg, slurm_unpack_slurmdbd_msg);
55
strong_alias(slurmdbd_pack_fini_msg, slurm_slurmdbd_pack_fini_msg);
55
strong_alias(slurmdbd_pack_fini_msg, slurm_slurmdbd_pack_fini_msg);
56
56
57
#define SQL_TEXT_MAX 65535
57
58
58
static int _unpack_config_name(char **object, uint16_t rpc_version,
59
static int _unpack_config_name(char **object, uint16_t rpc_version,
59
			       buf_t *buffer)
60
			       buf_t *buffer)
Lines 614-619 static int _unpack_job_start_msg(void **msg, uint16_t rpc_version, Link Here
614
		safe_unpack_time(&msg_ptr->start_time, buffer);
615
		safe_unpack_time(&msg_ptr->start_time, buffer);
615
		safe_unpackstr_xmalloc(&msg_ptr->submit_line,
616
		safe_unpackstr_xmalloc(&msg_ptr->submit_line,
616
				       &uint32_tmp, buffer);
617
				       &uint32_tmp, buffer);
618
		if (uint32_tmp > SQL_TEXT_MAX) {
619
			char *tmp = NULL;
620
			error("submit_line for jobid %u too long, truncating.",
621
			      msg_ptr->job_id);
622
			xstrncat(tmp, msg_ptr->submit_line, SQL_TEXT_MAX - 1);
623
			xfree(msg_ptr->submit_line);
624
			msg_ptr->submit_line = tmp;
625
		}
617
		safe_unpack_time(&msg_ptr->submit_time, buffer);
626
		safe_unpack_time(&msg_ptr->submit_time, buffer);
618
		safe_unpack32(&msg_ptr->timelimit, buffer);
627
		safe_unpack32(&msg_ptr->timelimit, buffer);
619
		safe_unpackstr_xmalloc(&msg_ptr->tres_alloc_str,
628
		safe_unpackstr_xmalloc(&msg_ptr->tres_alloc_str,
Lines 672-677 static int _unpack_job_start_msg(void **msg, uint16_t rpc_version, Link Here
672
		safe_unpack_time(&msg_ptr->start_time, buffer);
681
		safe_unpack_time(&msg_ptr->start_time, buffer);
673
		safe_unpackstr_xmalloc(&msg_ptr->submit_line,
682
		safe_unpackstr_xmalloc(&msg_ptr->submit_line,
674
				       &uint32_tmp, buffer);
683
				       &uint32_tmp, buffer);
684
		if (uint32_tmp > SQL_TEXT_MAX) {
685
			char *tmp = NULL;
686
			error("submit_line for jobid %u too long, truncating.",
687
			      msg_ptr->job_id);
688
			xstrncat(tmp, msg_ptr->submit_line, SQL_TEXT_MAX - 1);
689
			xfree(msg_ptr->submit_line);
690
			msg_ptr->submit_line = tmp;
691
		}
675
		safe_unpack_time(&msg_ptr->submit_time, buffer);
692
		safe_unpack_time(&msg_ptr->submit_time, buffer);
676
		safe_unpack32(&msg_ptr->timelimit, buffer);
693
		safe_unpack32(&msg_ptr->timelimit, buffer);
677
		safe_unpackstr_xmalloc(&msg_ptr->tres_alloc_str,
694
		safe_unpackstr_xmalloc(&msg_ptr->tres_alloc_str,
Lines 1183-1188 static int _unpack_step_start_msg(dbd_step_start_msg_t **msg, Link Here
1183
			goto unpack_error;
1200
			goto unpack_error;
1184
		safe_unpackstr_xmalloc(&msg_ptr->submit_line,
1201
		safe_unpackstr_xmalloc(&msg_ptr->submit_line,
1185
				       &uint32_tmp, buffer);
1202
				       &uint32_tmp, buffer);
1203
		if (uint32_tmp > SQL_TEXT_MAX) {
1204
			char *tmp = NULL;
1205
			error("submit_line for step too long, truncating.");
1206
			xstrncat(tmp, msg_ptr->submit_line, SQL_TEXT_MAX - 1);
1207
			xfree(msg_ptr->submit_line);
1208
			msg_ptr->submit_line = tmp;
1209
		}
1186
		safe_unpack32(&msg_ptr->task_dist, buffer);
1210
		safe_unpack32(&msg_ptr->task_dist, buffer);
1187
		safe_unpack32(&msg_ptr->total_tasks, buffer);
1211
		safe_unpack32(&msg_ptr->total_tasks, buffer);
1188
		safe_unpackstr_xmalloc(&msg_ptr->tres_alloc_str,
1212
		safe_unpackstr_xmalloc(&msg_ptr->tres_alloc_str,

Return to ticket 16424