[Spice-devel] [PATCH 5/5] client: skip spaces in --host-subject

Christophe Fergeau cfergeau at redhat.com
Mon Apr 18 04:01:12 PDT 2011


This fixes fdo bug #32896:

"Subject in certificates is stored in following format (values separated by
comma and space):

grep Subject: server-cert.pem | awk -F": " '{print $2}'
O=REDHAT, CN=10.34.58.2

While spicec expects that values in host subject are separated only by comma:

spicec --host-subject "O=REDHAT,CN=10.34.58.2"
"

In this case, ignoring spaces make it much easier to directly copy and paste
the subject line from certificates.
---
 client/application.cpp |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/client/application.cpp b/client/application.cpp
index ef08087..292dae6 100644
--- a/client/application.cpp
+++ b/client/application.cpp
@@ -2001,7 +2001,14 @@ bool Application::set_host_cert_subject(const char* subject, const char* arg0)
                 _exit_code = SPICEC_ERROR_CODE_INVALID_ARG;
                 return false;
             }
-            entry_pair.first = entry.substr(0, value_pos);
+            size_t start_pos = entry.find_first_not_of(' ');
+            if ((start_pos == std::string::npos) || (start_pos == value_pos)) {
+                Platform::term_printf("%s: host_subject bad format: first part of assignment must be non empty in %s\n",
+                                      arg0, entry.c_str());
+                _exit_code = SPICEC_ERROR_CODE_INVALID_ARG;
+                return false;
+            }
+            entry_pair.first = entry.substr(start_pos, value_pos - start_pos);
             entry_pair.second = entry.substr(value_pos + 1);
             _host_auth_opt.host_subject.push_back(entry_pair);
             DBG(0, "subject entry: %s=%s", entry_pair.first.c_str(), entry_pair.second.c_str());
-- 
1.7.4.4



More information about the Spice-devel mailing list