[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH] Add check for empty List in FdoCsqPeekNextIrp.
> -----Original Message----- > From: Troy Crosley <troycrosley@xxxxxxxxx> > Sent: 19 October 2020 19:57 > To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx > Cc: paul@xxxxxxx; ben.chalmers@xxxxxxxxxx; owen.smith@xxxxxxxxxx; Troy > Crosley <troycrosley@xxxxxxxxx> > Subject: [PATCH] Add check for empty List in FdoCsqPeekNextIrp. > > Under certain situations, such as when input is being sent during driver > install or sleep transition, FdoCsqPeekNextIrp can be called with an > empty Fdo->List. In that case, FdoCsqPeekNextIrp dereferences the list > head and returns an invalid IRP; it should check for this error > condition. > > Signed-off-by: Troy Crosley <troycrosley@xxxxxxxxx> Acked-by: Paul Durrant <paul@xxxxxxx> > --- > src/xenhid/fdo.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/src/xenhid/fdo.c b/src/xenhid/fdo.c > index c2ef7c8..04d3d7f 100644 > --- a/src/xenhid/fdo.c > +++ b/src/xenhid/fdo.c > @@ -123,8 +123,12 @@ FdoCsqPeekNextIrp( > else > ListEntry = Irp->Tail.Overlay.ListEntry.Flink; > > - NextIrp = CONTAINING_RECORD(ListEntry, IRP, Tail.Overlay.ListEntry); > // should walk through the list until a match against Context is found > + if (ListEntry != &Fdo->List) > + NextIrp = CONTAINING_RECORD(ListEntry, IRP, Tail.Overlay.ListEntry); > + else > + NextIrp = NULL; > + > return NextIrp; > } > > -- > 2.20.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |