diff options
Diffstat (limited to 'security/pwman/files/patch-src__convert_pwdb.c')
-rw-r--r-- | security/pwman/files/patch-src__convert_pwdb.c | 40 |
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 |