ASoC: Free memory in the error paths of soc_of_parse_audio_routing()
authorMatthias Kaehlcke <matthias@kaehlcke.net>
Wed, 11 Jul 2012 15:36:34 +0000 (17:36 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 11 Jul 2012 17:40:57 +0000 (18:40 +0100)
Release the memory of the routing table before leaving the function upon errors
in the device tree

Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-core.c

index 64b464ca3bc55ff6aaa89678b5ee6227e1a04ba5..f219b2f7ee682c795bcf12ec2bea9b9855506b6f 100644 (file)
@@ -4136,6 +4136,7 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
                        dev_err(card->dev,
                                "Property '%s' index %d could not be read: %d\n",
                                propname, 2 * i, ret);
+                       kfree(routes);
                        return -EINVAL;
                }
                ret = of_property_read_string_index(np, propname,
@@ -4144,6 +4145,7 @@ int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
                        dev_err(card->dev,
                                "Property '%s' index %d could not be read: %d\n",
                                propname, (2 * i) + 1, ret);
+                       kfree(routes);
                        return -EINVAL;
                }
        }