Skip to content
Snippets Groups Projects
Commit 95d07ba0 authored by Moe Jette's avatar Moe Jette
Browse files

Fix bug in unpack array code

parent dc071c20
No related branches found
No related tags found
No related merge requests found
......@@ -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 );
}
}
......
......@@ -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 ;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment