[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[augeas-devel] augeas: master - * src/lens.c (ambig_check): report OOM from fa_ambig_example



Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=d640667168c83297dde3f361ab8cd33945f1b124
Commit:        d640667168c83297dde3f361ab8cd33945f1b124
Parent:        e370e1afa8a7f66a1819f06d941c57daa68cce59
Author:        David Lutterkort <lutter redhat com>
AuthorDate:    Thu Jan 14 12:24:17 2010 -0800
Committer:     David Lutterkort <lutter redhat com>
CommitterDate: Thu Jan 14 14:48:38 2010 -0800

* src/lens.c (ambig_check): report OOM from fa_ambig_example

---
 src/lens.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/src/lens.c b/src/lens.c
index cb770ba..895178e 100644
--- a/src/lens.c
+++ b/src/lens.c
@@ -557,8 +557,19 @@ static struct value *ambig_check(struct info *info,
                                  const char *msg, bool iterated) {
     char *upv, *pv, *v;
     size_t upv_len;
-    fa_ambig_example(fa1, fa2, &upv, &upv_len, &pv, &v);
     struct value *exn = NULL;
+    int r;
+
+    r = fa_ambig_example(fa1, fa2, &upv, &upv_len, &pv, &v);
+    if (r < 0) {
+        exn = make_exn_value(ref(info), "not enough memory");
+        if (exn != NULL) {
+            return exn;
+        } else {
+            ERR_REPORT(info, AUG_ENOMEM, NULL);
+            return exn_error();
+        }
+    }
 
     if (upv != NULL) {
         char *e_u = escape(upv, pv - upv);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]