[PATCH] firewire: sbp2: fix freeing of unallocated memory

From: Stefan Richter
Date: Thu Sep 03 2009 - 17:08:00 EST


If a target writes invalid status (typically status of a command that
already timed out, firewire-sbp2 attempts to put away an ORB that
doesn't exist. https://bugzilla.redhat.com/show_bug.cgi?id=519772

Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
---
drivers/firewire/sbp2.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

Index: linux/drivers/firewire/sbp2.c
===================================================================
--- linux.orig/drivers/firewire/sbp2.c
+++ linux/drivers/firewire/sbp2.c
@@ -456,12 +456,12 @@ static void sbp2_status_write(struct fw_
}
spin_unlock_irqrestore(&card->lock, flags);

- if (&orb->link != &lu->orb_list)
+ if (&orb->link != &lu->orb_list) {
orb->callback(orb, &status);
- else
+ kref_put(&orb->kref, free_orb);
+ } else {
fw_error("status write for unknown orb\n");
-
- kref_put(&orb->kref, free_orb);
+ }

fw_send_response(card, request, RCODE_COMPLETE);
}

--
Stefan Richter
-=====-==--= =--= ---==
http://arcgraph.de/sr/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/