[augeas-devel] (make_path): avoid buffer overrun

Jim Meyering jim at meyering.net
Fri May 23 13:23:54 UTC 2008


Another edge case with "get /":

changeset:   489:c60956210601
tag:         tip
user:        Jim Meyering <meyering at redhat.com>
date:        Fri May 23 15:14:55 2008 +0200
files:       src/augeas.c
description:
"echo get /|augtool -n" would read one past end of malloc'd buffer
* src/augeas.c (make_path): Avoid buffer overrun.

diff --git a/src/augeas.c b/src/augeas.c
--- a/src/augeas.c
+++ b/src/augeas.c
@@ -135,7 +135,9 @@
     for (const char *p = path; *p != '\0'; p++) {
         if (*p == SEP) {
             while (*p == SEP) p++;
-            if (*p) result->nsegments++;
+            if (*p == '\0')
+                break;
+            result->nsegments++;
         }
     }
     if (result->nsegments == 0)




More information about the augeas-devel mailing list