profile stores empty string values without double quotes
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 25 Apr 2007 22:55:58 +0000 (22:55 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 25 Apr 2007 22:55:58 +0000 (22:55 +0000)
        prof_parse.c (need_double_quotes):
        The profile library will happily read in right hand values
        that represent the empty string by parsing "".  However,
        when storing the same empty string back to a file, the
        empty string is written without the double quotes.

        This means that

                [section] foo = ""

        becomes

                [section] foo =

        which is invalid input.  A subsequent attempt to parse the
        profile will result in an invalid input error.

        KFW and KFM's realm editors can inadvertently produce an
        invalid krb5 profile if one of the ignored sections of the
        input profile contains a right hand value that is "".

        This patch was produced by Asanka Herath and it was reviewed
        by jaltman and lxs.

ticket: new
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19529 dc483132-0cff-0310-8789-dd5450dbe970

src/util/profile/prof_parse.c

index c5ef4f8e7bdc9548e6a9740c66eaf57f2e4a02db..db491591d4d58c70e35840035e67850c759e31fd 100644 (file)
@@ -306,8 +306,10 @@ errcode_t profile_parse_file(FILE *f, struct profile_node **root)
  */
 static int need_double_quotes(char *str)
 {
-       if (!str || !*str)
-               return 0;
+       if (!str)
+                return 0;
+        if (*str)
+               return 1;
        if (isspace((int) (*str)) ||isspace((int) (*(str + strlen(str) - 1))))
                return 1;
        if (strchr(str, '\n') || strchr(str, '\t') || strchr(str, '\b'))