[28517] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit [krb5-1.12]: Fix deleted node handling in libprofile

daemon@ATHENA.MIT.EDU (Tom Yu)
Thu Aug 7 18:39:53 2014

Date: Thu, 7 Aug 2014 18:39:49 -0400
From: Tom Yu <tlyu@mit.edu>
Message-Id: <201408072239.s77MdnOP030961@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/a3ae1eaee8ae5e972cc29133684fdf878708c8b2
commit a3ae1eaee8ae5e972cc29133684fdf878708c8b2
Author: Greg Hudson <ghudson@mit.edu>
Date:   Wed Jul 16 16:02:21 2014 -0400

    Fix deleted node handling in libprofile
    
    In profile_find_node, skip deleted nodes when finding the second
    match.  Otherwise, profile_clear_nodes could return an error if a node
    has some values to clear but the last one is deleted.
    
    In profile_node_iterator, skip deleted nodes when looking up the
    section names.  Otherwise we could iterate over a deleted section
    and/or ignore its replacement.
    
    (cherry picked from commit e7f50a1c11845ba73ce4ffa4729d10113563a247)
    
    ticket: 7971
    version_fixed: 1.12.2
    status: resolved

 src/util/profile/prof_tree.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/util/profile/prof_tree.c b/src/util/profile/prof_tree.c
index cc5bdfd..081f688 100644
--- a/src/util/profile/prof_tree.c
+++ b/src/util/profile/prof_tree.c
@@ -294,6 +294,8 @@ errcode_t profile_find_node(struct profile_node *section, const char *name,
             if (value && (strcmp(p->value, value)))
                 continue;
         }
+        if (p->deleted)
+            continue;
         /* A match! */
         break;
     }
@@ -519,7 +521,7 @@ get_new_file:
         assert(section != NULL);
         for (cpp = iter->names; cpp[iter->done_idx]; cpp++) {
             for (p=section->first_child; p; p = p->next) {
-                if (!strcmp(p->name, *cpp) && !p->value)
+                if (!strcmp(p->name, *cpp) && !p->value && !p->deleted)
                     break;
             }
             if (!p) {
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post