浏览代码

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 8 年之前
父节点
当前提交
68045ff55f
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      src/modules/sca/sca_rpc.c

+ 5 - 0
src/modules/sca/sca_rpc.c

@@ -483,6 +483,11 @@ void sca_rpc_release_appearance(rpc_t *rpc, void *ctx)
 		return;
 	}
 
+	if (app_idx <= 0) {
+		rpc->fault(ctx, 500, "appearance-index must be > 0");
+		return;
+	}
+
 	if ((ht = sca->appearances) == NULL) {
 		rpc->fault(ctx, 500, "No active appearances");
 		return;