From 1ac63d941a60816799b7c70941fefbafdb4d79de Mon Sep 17 00:00:00 2001
From: Dominic Cleal <dcleal@redhat.com>
Date: Tue, 25 Feb 2014 16:19:51 +0000
Subject: [PATCH 3/3] Krb5: permit braces in values when not in sub-section
Fixes RHBZ#1066419
(cherry picked from commit d9465ab8e88f91cb5a29eb9f04044876ce45a2d9)
Conflicts:
NEWS
---
lenses/krb5.aug | 15 ++++++++-------
lenses/tests/test_krb5.aug | 7 +++++++
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/lenses/krb5.aug b/lenses/krb5.aug
index 8d26cfe..8b4ebe4 100644
--- a/lenses/krb5.aug
+++ b/lenses/krb5.aug
@@ -25,16 +25,17 @@ let realm_re = /[A-Z][.a-zA-Z0-9-]*/
let app_re = /[a-z][a-zA-Z0-9_]*/
let name_re = /[.a-zA-Z0-9_-]+/
-let value = store /[^;# \t\r\n{}]+/
-let entry (kw:regexp) (sep:lens) (comment:lens)
+let value_br = store /[^;# \t\r\n{}]+/
+let value = store /[^;# \t\r\n]+/
+let entry (kw:regexp) (sep:lens) (value:lens) (comment:lens)
= [ indent . key kw . sep . value . (comment|eol) ] | comment
let subsec_entry (kw:regexp) (sep:lens) (comment:lens)
- = ( entry kw sep comment ) | empty
+ = ( entry kw sep value_br comment ) | empty
let simple_section (n:string) (k:regexp) =
let title = Inifile.indented_title n in
- let entry = entry k eq comment in
+ let entry = entry k eq value comment in
Inifile.record title entry
let record (t:string) (e:lens) =
@@ -59,7 +60,7 @@ let enctype_list (nr:regexp) (ns:string) =
. (comment|eol) . [ label "#eol" ]
let libdefaults =
- let option = entry (name_re - ("v4_name_convert" |enctypes)) eq comment in
+ let option = entry (name_re - ("v4_name_convert" |enctypes)) eq value comment in
let enctype_lists = enctype_list /permitted_enctypes/i "permitted_enctypes"
| enctype_list /default_tgs_enctypes/i "default_tgs_enctypes"
| enctype_list /default_tkt_enctypes/i "default_tkt_enctypes" in
@@ -73,7 +74,7 @@ let login =
simple_section "login" keys
let appdefaults =
- let option = entry (name_re - ("realm" | "application")) eq comment in
+ let option = entry (name_re - ("realm" | "application")) eq value_br comment in
let realm = [ indent . label "realm" . store realm_re .
eq_openbr . (option|empty)* . closebr . eol ] in
let app = [ indent . label "application" . store app_re .
@@ -117,7 +118,7 @@ let logging =
let capaths =
let realm = [ indent . key realm_re .
eq_openbr .
- (entry realm_re eq comment)* . closebr . eol ] in
+ (entry realm_re eq value_br comment)* . closebr . eol ] in
record "capaths" (realm|comment)
let dbdefaults =
diff --git a/lenses/tests/test_krb5.aug b/lenses/tests/test_krb5.aug
index 0547b65..b0ec6d6 100644
--- a/lenses/tests/test_krb5.aug
+++ b/lenses/tests/test_krb5.aug
@@ -995,3 +995,10 @@ test Krb5.lns get v4_name_convert =
(* Ticket #288: semicolons for comments *)
test Krb5.lns get "; AD : This Kerberos configuration is for CERN's Active Directory realm.\n" =
{ "#comment" = "AD : This Kerberos configuration is for CERN's Active Directory realm." }
+
+(* RHBZ#1066419: braces in values *)
+test Krb5.lns get "[libdefaults]\n
+default_ccache_name = KEYRING:persistent:%{uid}\n" =
+ { "libdefaults"
+ { }
+ { "default_ccache_name" = "KEYRING:persistent:%{uid}" } }
--
1.8.5.3