diff --git a/src/common/pack.c b/src/common/pack.c index 92c42ebaf2d10e963315836e38106055c20a7a57..976a11efde6f1cf5607424192d6e15e93bea7dd7 100644 --- a/src/common/pack.c +++ b/src/common/pack.c @@ -53,25 +53,26 @@ void _pack32array(uint32_t *valp, uint16_t size_val, void **bufp, int *lenp) { int i=0; - uint16_t nl = htons(size_val); - _pack16( nl, bufp, lenp ); + + _pack16( size_val, bufp, lenp ); for ( i=0; i < size_val; i++ ) { _pack32( *(valp + i ), bufp, lenp ); } } -/* Given a int ptr, it will pack an array of size_val +/* Given a int ptr, it will unpack an array of size_val */ void _unpack32array( uint32_t **valp, uint16_t* size_val, void **bufp, int *lenp) { int i=0; + _unpack16( size_val, bufp, lenp ); - valp = xmalloc( (*size_val) * sizeof( uint32_t ) ); - + *valp = xmalloc( (*size_val) * sizeof( uint32_t ) ); + for ( i=0; i < *size_val; i++ ) { - _unpack32( (*valp) + i , bufp, lenp ); + _unpack32( (*valp) + i , bufp, lenp ); } } diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index e2e5f4a000f2a285a57115213214217d7094071f..adb4d2c0551f759c2f8a152b5678ba5d909a8d95 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -113,7 +113,8 @@ int pack_msg ( slurm_msg_t const * msg , char ** buffer , uint32_t * buf_len ) case RESPONSE_RESOURCE_ALLOCATION : case RESPONSE_IMMEDIATE_RESOURCE_ALLOCATION : case RESPONSE_JOB_WILL_RUN : - pack_resource_allocation_response_msg ( ( resource_allocation_response_msg_t * ) msg -> data , ( void ** ) buffer , buf_len ) ; + pack_resource_allocation_response_msg ( ( resource_allocation_response_msg_t * ) msg -> data , + ( void ** ) buffer , buf_len ) ; break ; case REQUEST_UPDATE_JOB : pack_job_desc ( (job_desc_msg_t * ) msg -> data , @@ -378,8 +379,8 @@ void pack_resource_allocation_response_msg ( resource_allocation_response_msg_t pack32 ( msg->job_id , ( void ** ) buffer , length ) ; packstr ( msg->node_list , ( void ** ) buffer , length ) ; pack16 ( msg->num_cpu_groups , ( void ** ) buffer , length ) ; - packint_array ( msg->cpus_per_node, msg->num_cpu_groups , ( void ** ) buffer , length ) ; - packint_array ( msg->cpu_count_reps, msg->num_cpu_groups, ( void ** ) buffer , length ) ; + pack32_array ( msg->cpus_per_node, msg->num_cpu_groups , ( void ** ) buffer , length ) ; + pack32_array ( msg->cpu_count_reps, msg->num_cpu_groups, ( void ** ) buffer , length ) ; } int unpack_resource_allocation_response_msg ( resource_allocation_response_msg_t ** msg , void ** buffer , int * length ) @@ -389,16 +390,14 @@ int unpack_resource_allocation_response_msg ( resource_allocation_response_msg_t /* alloc memory for structure */ tmp_ptr = xmalloc ( sizeof ( resource_allocation_response_msg_t ) ) ; if (tmp_ptr == NULL) - { return ENOMEM; - } /* load the data values */ unpack32 ( & tmp_ptr -> job_id , ( void ** ) buffer , length ) ; unpackstr_xmalloc ( & tmp_ptr -> node_list , &uint16_tmp, ( void ** ) buffer , length ) ; unpack16 ( & tmp_ptr -> num_cpu_groups , ( void ** ) buffer , length ) ; - unpackint_array ( (uint32_t **) &(tmp_ptr->cpus_per_node), &uint16_tmp, ( void ** ) buffer , length ) ; - unpackint_array ( (uint32_t **) &(tmp_ptr->cpu_count_reps), &uint16_tmp, ( void ** ) buffer , length ) ; + unpack32_array ( (uint32_t **) &(tmp_ptr->cpus_per_node), &uint16_tmp, ( void ** ) buffer , length ) ; + unpack32_array ( (uint32_t **) &(tmp_ptr->cpu_count_reps), &uint16_tmp, ( void ** ) buffer , length ) ; *msg = tmp_ptr ; return 0 ; }