summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2013-08-23 18:02:36 +0000
committerMatthew Jordan <mjordan@digium.com>2013-08-23 18:02:36 +0000
commit32a0567c461ee426817e476724e206d603fe1e70 (patch)
treea31834a79113c3be8c89eb73594c1d07ba810279
parent882ba864345a5600cf3d49560ab95fd784e445e8 (diff)
Prevent seg fault in off nominal path when registered option fails to validate
If an option is registered to a type and it is the last known type in the list of registered types, and the option fails to register, an overrun of the types array can occur due to the index variable having been already incremented. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/config_options.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/main/config_options.c b/main/config_options.c
index 20e993507..37c743355 100644
--- a/main/config_options.c
+++ b/main/config_options.c
@@ -188,7 +188,7 @@ static int link_option_to_types(struct aco_info *info, struct aco_type **types,
#endif /* AST_XML_DOCS */
) {
do {
- ao2_unlink(types[idx]->internal->opts, opt);
+ ao2_unlink(types[idx - 1]->internal->opts, opt);
} while (--idx);
return -1;
}