Skip to contentSkip to conversation

radio-mr800: set radio frequency only upon success

PATCH In review David Ellingsworth 1 participant 1 message Sep 13, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 14/14 radio-mr800: set radio frequency only upon success

From 8c441616f67011244cb15bc1a3dda6fd8706ecd2 Mon Sep 17 00:00:00 2001
From: David Ellingsworth <[email protected]>
Date: Sat, 12 Sep 2009 16:04:44 -0400
Subject: [PATCH 08/14] mr800: fix potential use after free

---
drivers/media/radio/radio-mr800.c | 1 -

1 files changed, 0 insertions(+), 1 deletions(-)
drivers/media/radio/radio-mr800.c +0 -1
index 9fd2342..87b58e3 100644
@@ -274,7 +274,6 @@ static void usb_amradio_disconnect(struct usb_interface *intf)
 
    usb_set_intfdata(intf, NULL);
    video_unregister_device(&radio->videodev);
-    v4l2_device_disconnect(&radio->v4l2_dev);

}

/* vidioc_querycap - query device capabilities */

Signature · 1 line
1.6.3.3
Quoted 1 line

From 1c62f52da6114756d16644f8401f1903a50ae455 Mon Sep 17 00:00:00 2001

From: David Ellingsworth <[email protected]>
Date: Sat, 12 Sep 2009 22:03:56 -0400
Subject: [PATCH 14/14] mr800: set radio frequency only upon success

---
 drivers/media/radio/radio-mr800.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)
drivers/media/radio/radio-mr800.c +2 -6
index 4d955aa..f609fdf 100644
@@ -235,6 +235,7 @@ static int amradio_setfreq(struct amradio_device *radio, int freq)
 	if (retval < 0 || size != BUFFER_LENGTH)
 		goto out_err;
 
+	radio->curfreq = freq;
 	goto out;
 
 out_err:
@@ -370,13 +371,8 @@ static int vidioc_s_frequency(struct file *file, void *priv,
 				struct v4l2_frequency *f)
 {
 	struct amradio_device *radio = file->private_data;
-	int retval = 0;
-
-	radio->curfreq = f->frequency;
 
-	retval = amradio_setfreq(radio, radio->curfreq);
-
-	return retval;
+	return amradio_setfreq(radio, f->frequency);
 }
 
 /* vidioc_g_frequency - get tuner radio frequency */
Signature · 1 line
1.6.3.3