On Thu, Jul 14, 2016 at 16:55:01 -0400, John Ferlan wrote:
[...]
>> +
>> +void
>> +virQEMUBuildLuksOpts(virBufferPtr buf,
>> + virStorageEncryptionInfoDefPtr enc,
>> + const char *alias)
>> +{
>> + virBufferAsprintf(buf, "key-secret=%s,", alias);
>> +
>> + /* If there's any cipher, then add that to the command line */
>
>> + if (enc->cipher_name) {
>> + virBufferEscapeString(buf, "cipher-alg=%s-",
enc->cipher_name);
>> + virBufferAsprintf(buf, "%u,", enc->cipher_size);
>> + if (enc->cipher_mode)
>> + virBufferEscapeString(buf, "cipher-mode=%s,",
>> enc->cipher_mode);
>> + if (enc->cipher_hash)
>> + virBufferEscapeString(buf, "hash-alg=%s,",
>> enc->cipher_hash);
>> + if (enc->ivgen_name)
>> + virBufferEscapeString(buf, "ivgen-alg=%s,",
>> enc->ivgen_name);
>> + if (enc->ivgen_hash)
>> + virBufferEscapeString(buf, "ivgen-hash-alg=%s,",
>> enc->ivgen_hash);
>
> s/virBufferEscapeString/qemuBufferEscapeComma/
Not sure I understand what this is referencing.... Besides
I'd guess that it doesn't make much sense to escape < to < and > to
> in code that puts stuff on the command line rather to an XML and
that it makes more sense to escape a comma in the strings with two
commas as is usual for qemu command lines.
qemuBufferEscapeComma is static to qemu_command
Extracting it to src/util/virbuffer.c could help.