aboutsummaryrefslogtreecommitdiff
path: root/security/pwman/files/patch-src__convert_pwdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/pwman/files/patch-src__convert_pwdb.c')
-rw-r--r--security/pwman/files/patch-src__convert_pwdb.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/security/pwman/files/patch-src__convert_pwdb.c b/security/pwman/files/patch-src__convert_pwdb.c
new file mode 100644
index 000000000000..482d8aba1578
--- /dev/null
+++ b/security/pwman/files/patch-src__convert_pwdb.c
@@ -0,0 +1,40 @@
+--- ./src/convert_pwdb.c.orig 2006-02-14 11:43:20.000000000 +0000
++++ ./src/convert_pwdb.c 2010-09-14 02:40:40.027593504 +0000
+@@ -186,13 +186,32 @@
+ write_password_node(xmlNodePtr root, Pw *pw)
+ {
+ xmlNodePtr node;
++ xmlChar *escaped;
++
++ // Take the inbound strings. Treat as an xmlChar, and escape
++ // Need to free the result of escape every time
+
+ node = xmlNewChild(root, NULL, (xmlChar*)"PwItem", NULL);
+- xmlNewChild(node, NULL, (xmlChar*)"name", (xmlChar*)pw->name);
+- xmlNewChild(node, NULL, (xmlChar*)"host", (xmlChar*)pw->host);
+- xmlNewChild(node, NULL, (xmlChar*)"user", (xmlChar*)pw->user);
+- xmlNewChild(node, NULL, (xmlChar*)"passwd", (xmlChar*)pw->passwd);
+- xmlNewChild(node, NULL, (xmlChar*)"launch", (xmlChar*)pw->launch);
++
++ escaped = xmlEncodeSpecialChars(root, (xmlChar*)pw->name);
++ xmlNewChild(node, NULL, (xmlChar*)"name", escaped);
++ xmlFree(escaped);
++
++ escaped = xmlEncodeSpecialChars(root, (xmlChar*)pw->host);
++ xmlNewChild(node, NULL, (xmlChar*)"host", escaped);
++ xmlFree(escaped);
++
++ escaped = xmlEncodeSpecialChars(root, (xmlChar*)pw->user);
++ xmlNewChild(node, NULL, (xmlChar*)"user", escaped);
++ xmlFree(escaped);
++
++ escaped = xmlEncodeSpecialChars(root, (xmlChar*)pw->passwd);
++ xmlNewChild(node, NULL, (xmlChar*)"passwd", escaped);
++ xmlFree(escaped);
++
++ escaped = xmlEncodeSpecialChars(root, (xmlChar*)pw->launch);
++ xmlNewChild(node, NULL, (xmlChar*)"launch", escaped);
++ xmlFree(escaped);
+ }
+
+ int