@@ -474,7 +474,8 @@ static int process_input(void)
474
474
475
475
static int send_rpc_value (const char * * tag , void * value )
476
476
{
477
- out_packet_int8 (* * tag );
477
+ if (!out_packet_int8 (* * tag ))
478
+ return -1 ;
478
479
479
480
int size = 0 ;
480
481
switch (* * tag ) {
@@ -484,23 +485,27 @@ static int send_rpc_value(const char **tag, void *value)
484
485
485
486
case 'b' : // bool
486
487
size = 1 ;
487
- out_packet_chunk (value , size );
488
+ if (!out_packet_chunk (value , size ))
489
+ return -1 ;
488
490
break ;
489
491
490
492
case 'i' : // int(width=32)
491
493
size = 4 ;
492
- out_packet_chunk (value , size );
494
+ if (!out_packet_chunk (value , size ))
495
+ return -1 ;
493
496
break ;
494
497
495
498
case 'I' : // int(width=64)
496
499
case 'f' : // float
497
500
size = 8 ;
498
- out_packet_chunk (value , size );
501
+ if (!out_packet_chunk (value , size ))
502
+ return -1 ;
499
503
break ;
500
504
501
505
case 'F' : // Fraction
502
506
size = 16 ;
503
- out_packet_chunk (value , size );
507
+ if (!out_packet_chunk (value , size ))
508
+ return -1 ;
504
509
break ;
505
510
506
511
case 'l' : { // list(elt='a)
@@ -604,7 +609,7 @@ static int process_kmsg(struct msg_base *umsg)
604
609
605
610
if (!send_rpc_request (msg -> rpc_num , msg -> args )) {
606
611
log ("Failed to send RPC request" );
607
- return 0 ;
612
+ return 0 ; // restart session
608
613
}
609
614
610
615
user_kernel_state = USER_KERNEL_WAIT_RPC ;
@@ -617,6 +622,7 @@ static int process_kmsg(struct msg_base *umsg)
617
622
umsg -> type );
618
623
return 0 ;
619
624
}
625
+
620
626
return 1 ;
621
627
}
622
628
0 commit comments