}
else if (*it == 'x')
{
- if (++it == in.end())
- throw MarshallingException();
-
string t1;
-
- if (!isxdigit(*it))
- throw MarshallingException();
- t1 += *it;
-
- if ((it + 1) != in.end() && isxdigit(*(it + 1)))
- t1 += *++it;
+ for (int i = 0; i < 2; ++i)
+ {
+ if (++it == in.end() || !isxdigit(*it))
+ throw MarshallingException();
+ t1 += *it;
+ }
unsigned int t2;
sscanf(t1.c_str(), "%x", &t2);
else if ((unsigned char)(*it) > 127)
{
char s[5];
- snprintf(s, 5, "\\x%x", (unsigned char)(*it));
+ snprintf(s, 5, "\\x%02x", (unsigned char)(*it));
out += string(s);
}
else
Filenames do not include the subvolume.
Strings are UTF-8. Other characters (e.g. in filenames) must be encoded
-hexadecimal as "\x?" or "\x??". As a consequence "\" must be encoded as "\\".
+hexadecimal as "\x??". As a consequence "\" must be encoded as "\\".
Due to security concerns there are no methods to get, compare or revert
files. This can be done in the client.
+-------------------------------------------------------------------
+Mon Jan 19 12:42:13 CET 2015 - aschnell@suse.de
+
+- stricter dbus string escaping (see bsc#913238)
+
-------------------------------------------------------------------
Mon Jan 12 12:19:30 CET 2015 - aschnell@suse.de