summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWeiyin Jiang <wjiang@codeaurora.org>2018-07-13 12:05:33 +0800
committerWeiyin Jiang <wjiang@codeaurora.org>2018-07-13 12:05:33 +0800
commit217604d69ce4dcf7c6433a9eafdfceefe25e8fd3 (patch)
treeb9c0676f0d33af1406d0428b7f36f910545c1317
parentcb8e724f3f4234d08e1908486054c3aa062bd8dd (diff)
audio: fix heap use-after-free in effect factory
fix heap use-after-free in effect factory Change-Id: Iad72b6761784ac8eb089fc704da3ed934b554cb8 CRs-Fixed: 2267916
-rw-r--r--media/libeffects/config/include/media/EffectsConfig.h2
-rw-r--r--media/libeffects/factory/EffectsXmlConfigLoader.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/media/libeffects/config/include/media/EffectsConfig.h b/media/libeffects/config/include/media/EffectsConfig.h
index 55b946f..6ce39f8 100644
--- a/media/libeffects/config/include/media/EffectsConfig.h
+++ b/media/libeffects/config/include/media/EffectsConfig.h
@@ -96,7 +96,7 @@ struct ParsingResult {
/** Parsed config, nullptr if the xml lib could not load the file */
std::unique_ptr<Config> parsedConfig;
size_t nbSkippedElement; //< Number of skipped invalid library, effect or processing chain
- const char* configPath; //< Path to the loaded configuration
+ std::string configPath; //< Path to the loaded configuration
};
/** Parses the provided effect configuration.
diff --git a/media/libeffects/factory/EffectsXmlConfigLoader.cpp b/media/libeffects/factory/EffectsXmlConfigLoader.cpp
index 7a7d431..052a88b 100644
--- a/media/libeffects/factory/EffectsXmlConfigLoader.cpp
+++ b/media/libeffects/factory/EffectsXmlConfigLoader.cpp
@@ -327,7 +327,8 @@ extern "C" ssize_t EffectLoadXmlEffectConfig(const char* path)
&gSkippedEffects, &gSubEffectList);
ALOGE_IF(result.nbSkippedElement != 0, "%zu errors during loading of configuration: %s",
- result.nbSkippedElement, result.configPath ?: "No config file found");
+ result.nbSkippedElement,
+ result.configPath.empty() ? "No config file found" : result.configPath.c_str());
return result.nbSkippedElement;
}