Message ID | 20171109032751.20573-1-guneshwor.o.singh@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Nov 09, 2017 at 08:57:51AM +0530, Guneshwor Singh wrote: > From: "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> > > Free codec vendor name on snd_hdac_device_init error. > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> > Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com> > --- > sound/hda/hdac_device.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c > index 19deb306facb..467b949544e2 100644 > --- a/sound/hda/hdac_device.c > +++ b/sound/hda/hdac_device.c > @@ -111,6 +111,8 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, > return 0; > > error: > + kfree(codec->vendor_name); Sorry I dont think this is right. The vendor name is freed in the snd_hdac_device_exit() We drop the reference here and release method would be called to free up the resources. > put_device(&codec->dev); > return err; > } > -- > 2.15.0 >
On Thu, 09 Nov 2017 05:44:19 +0100, Vinod Koul wrote: > > On Thu, Nov 09, 2017 at 08:57:51AM +0530, Guneshwor Singh wrote: > > From: "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> > > > > Free codec vendor name on snd_hdac_device_init error. > > > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> > > Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com> > > --- > > sound/hda/hdac_device.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c > > index 19deb306facb..467b949544e2 100644 > > --- a/sound/hda/hdac_device.c > > +++ b/sound/hda/hdac_device.c > > @@ -111,6 +111,8 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, > > return 0; > > > > error: > > + kfree(codec->vendor_name); > > Sorry I dont think this is right. > > The vendor name is freed in the snd_hdac_device_exit() > > We drop the reference here and release method would be called to > free up the resources. Correct. The patch would lead to a double-free. thanks, Takashi > > > put_device(&codec->dev); > > return err; > > } > > -- > > 2.15.0 > > > > -- > ~Vinod >
On Thu, Nov 09, 2017 at 08:31:56AM +0100, Takashi Iwai wrote: > On Thu, 09 Nov 2017 05:44:19 +0100, > Vinod Koul wrote: > > > > On Thu, Nov 09, 2017 at 08:57:51AM +0530, Guneshwor Singh wrote: > > > From: "Subhransu S. Prusty" <subhransu.s.prusty@intel.com> > > > > > > Free codec vendor name on snd_hdac_device_init error. > > > > > > Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> > > > Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com> > > > --- > > > sound/hda/hdac_device.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c > > > index 19deb306facb..467b949544e2 100644 > > > --- a/sound/hda/hdac_device.c > > > +++ b/sound/hda/hdac_device.c > > > @@ -111,6 +111,8 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, > > > return 0; > > > > > > error: > > > + kfree(codec->vendor_name); > > > > Sorry I dont think this is right. > > > > The vendor name is freed in the snd_hdac_device_exit() > > > > We drop the reference here and release method would be called to > > free up the resources. > > Correct. The patch would lead to a double-free. > > Yes, you are right. Please ignore the patch. > thanks, > > Takashi > > > > > > > put_device(&codec->dev); > > > return err; > > > } > > > -- > > > 2.15.0 > > > > > > > -- > > ~Vinod > >
diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c index 19deb306facb..467b949544e2 100644 --- a/sound/hda/hdac_device.c +++ b/sound/hda/hdac_device.c @@ -111,6 +111,8 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, return 0; error: + kfree(codec->vendor_name); + put_device(&codec->dev); return err; }