[freeradius] valuepair: Don't remove unknown backslash

Nikolai Kondrashov nkondras at fedoraproject.org
Mon Jan 19 17:00:40 UTC 2015


commit 11209699e69aa5d808e05ad67412a65ff7f5526f
Author: Nikolai Kondrashov <Nikolai.Kondrashov at redhat.com>
Date:   Mon Dec 15 14:55:51 2014 +0200

    valuepair: Don't remove unknown backslash
    
    Don't remove backslash from unkown escape sequences in pairparsevalue,
    adhering to behavior common to most other programs dealing with
    backslash escape sequences.
    
    Resolves: Bug#1173526

 ...s-valuepair-don-t-remove-unkown-backslash.patch |   40 ++++++++++++++++++++
 freeradius.spec                                    |    2 +
 2 files changed, 42 insertions(+), 0 deletions(-)
---
diff --git a/freeradius-valuepair-don-t-remove-unkown-backslash.patch b/freeradius-valuepair-don-t-remove-unkown-backslash.patch
new file mode 100644
index 0000000..2607c54
--- /dev/null
+++ b/freeradius-valuepair-don-t-remove-unkown-backslash.patch
@@ -0,0 +1,40 @@
+From 90b5b46341dbba78d8cd98d55d1b9321544c7887 Mon Sep 17 00:00:00 2001
+From: Nikolai Kondrashov <Nikolai.Kondrashov at redhat.com>
+Date: Mon, 15 Dec 2014 14:42:56 +0200
+Subject: [PATCH 1/1] valuepair: Don't remove unknown backslash
+
+Don't remove backslash from unknown escape sequences in pairparsevalue,
+adhering to behavior common to most other programs dealing with
+backslash escape sequences.
+---
+ src/lib/valuepair.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/src/lib/valuepair.c b/src/lib/valuepair.c
+index 7d6ee88..7742b81 100644
+--- a/src/lib/valuepair.c
++++ b/src/lib/valuepair.c
+@@ -1176,12 +1176,14 @@ int pairparsevalue(VALUE_PAIR *vp, char const *value, size_t inlen)
+ 					c = x;
+ 					cp += 3;
+ 
+-				} else if (cp[0]) {
+-					/*
+-					 *	\p --> p
+-					 */
+-					c = *cp++;
+-				} /* else at EOL \ --> \ */
++				}
++
++				/*
++				 *	Else It's not a recognised escape sequence DON'T
++				 *	consume the backslash. This is identical
++				 *	behaviour to bash and most other things that
++				 *	use backslash escaping.
++				 */
+ 			}
+ 			*p++ = c;
+ 			vp_len++;
+-- 
+2.1.3
+
diff --git a/freeradius.spec b/freeradius.spec
index 98525c5..6b83416 100644
--- a/freeradius.spec
+++ b/freeradius.spec
@@ -44,6 +44,7 @@ Patch20: freeradius-fix-checks-for-PW_TYPE_FILE_INPUT.patch
 Patch21: freeradius-added-D-option-to-mirror-radclient.patch
 Patch22: freeradius-man-remove-client-attribute-description.patch
 Patch23: freeradius-man-remove-references-to-naslist-and-clients.patch
+Patch24: freeradius-valuepair-don-t-remove-unkown-backslash.patch
 
 %global docdir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
 
@@ -223,6 +224,7 @@ This plugin provides the unixODBC support for the FreeRADIUS server project.
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
+%patch24 -p1
 
 %build
 # Force compile/link options, extra security for network facing daemon


More information about the scm-commits mailing list