aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-01 22:17:57 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-01 22:17:57 +0000
commit75452e3f9d95dc71432d919468bb003e90fd0324 (patch)
treefd442eb1b929aad61bce786881ff968533a46758
parent848e595dcabe5e345c7dbbc79ddca1ab7c3d6843 (diff)
Merged revisions 273566 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r273566 | russell | 2010-07-01 17:16:23 -0500 (Thu, 01 Jul 2010) | 14 lines Merged revisions 273565 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r273565 | russell | 2010-07-01 17:09:19 -0500 (Thu, 01 Jul 2010) | 7 lines Don't return a partially initialized datastore. If memory allocation fails in ast_strdup(), don't return a partially initialized datastore. Bad things may happen. (related to ABE-2415) ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@273571 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--main/datastore.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/main/datastore.c b/main/datastore.c
index 3d097860f..ee471551d 100644
--- a/main/datastore.c
+++ b/main/datastore.c
@@ -50,7 +50,10 @@ struct ast_datastore *__ast_datastore_alloc(const struct ast_datastore_info *inf
datastore->info = info;
- datastore->uid = ast_strdup(uid);
+ if (!ast_strlen_zero(uid) && !(datastore->uid = ast_strdup(uid))) {
+ ast_free(datastore);
+ datastore = NULL;
+ }
return datastore;
}