Browse code

sca: fix core when release_appearance RPC command parameter has wrong index

> #0 0x00007fd8bba5a067 in raise () from /lib/x86_64-linux-gnu/libc.so.6
> #1 0x00007fd8bba5b448 in abort () from /lib/x86_64-linux-gnu/libc.so.6
> #2 0x00007fd8bba53266 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> #3 0x00007fd8bba53312 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
> #4 0x00007fd8a4b16328 in sca_appearance_list_unlink_index (app_list=0x7fd8a603c528, idx=0) at sca_appearance.c:254
> #5 0x00007fd8a4ae0372 in sca_rpc_release_appearance (rpc=0x7fd8b1162300 <binrpc_callbacks>, ctx=0x7ffc2ce9eef0) at sca_rpc.c:504
> #6 0x00007fd8b0f38abb in process_rpc_req (buf=0x1e5e744 "\241\003\067oZ\274Ƒ\027sca.release_appearance", size=12344, bytes_needed=0x7ffc2ce9effc, sh=0xfefefefefefefe00,
> saved_state=0xfefefefefefefe00) at binrpc_run.c:675

Victor Seva authored on 08/06/2017 11:45:03
Showing 1 changed files
... ...
@@ -483,6 +483,11 @@ void sca_rpc_release_appearance(rpc_t *rpc, void *ctx)
483 483
 		return;
484 484
 	}
485 485
 
486
+	if (app_idx <= 0) {
487
+		rpc->fault(ctx, 500, "appearance-index must be > 0");
488
+		return;
489
+	}
490
+
486 491
 	if ((ht = sca->appearances) == NULL) {
487 492
 		rpc->fault(ctx, 500, "No active appearances");
488 493
 		return;