mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
staging: tidspbridge: use safer test on the result of find_first_zero_bit
Find_first_zero_bit considers BITS_PER_LONG bits at a time, and thus may return a larger number than the maximum position argument if that position is not a multiple of BITS_PER_LONG. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e1,e2,e3; statement S1,S2; @@ e1 = find_first_zero_bit(e2,e3) ... if (e1 - == + >= e3) S1 else S2 // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
cee49b3cfb
commit
cc0be81f00
@ -935,7 +935,7 @@ int node_connect(struct node_object *node1, u32 stream1,
|
||||
node2_type == NODE_DAISSOCKET)) {
|
||||
/* Find available pipe */
|
||||
pipe_id = find_first_zero_bit(hnode_mgr->pipe_map, MAXPIPES);
|
||||
if (pipe_id == MAXPIPES) {
|
||||
if (pipe_id >= MAXPIPES) {
|
||||
status = -ECONNREFUSED;
|
||||
goto out_unlock;
|
||||
}
|
||||
@ -1008,7 +1008,7 @@ int node_connect(struct node_object *node1, u32 stream1,
|
||||
status = -EINVAL;
|
||||
goto out_unlock;
|
||||
}
|
||||
if (chnl_id == CHNL_MAXCHANNELS) {
|
||||
if (chnl_id >= CHNL_MAXCHANNELS) {
|
||||
status = -ECONNREFUSED;
|
||||
goto out_unlock;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user