Re: [PATCH 4/9] qemudReportError: mark for translation string args to this function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Richard W.M. Jones" <rjones@xxxxxxxxxx> wrote:

> On Wed, Mar 26, 2008 at 08:55:53PM +0100, Jim Meyering wrote:
>>              qemudReportError(NULL, NULL, NULL, VIR_ERR_NO_MEMORY,
>> -                             "vncTLSx509certdir");
>> +                             "%s", _("failed to allocate vncTLSx509certdir"));
>
> versus:
>
>>          qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
>> -                         "Cannot find QEMU binary %s: %s", binary,
>> +                         _("Cannot find QEMU binary %s: %s"), binary,
>>                           strerror(errno));
>
> I assume that the problem with the first one is that gettext might
> erroneously return a string containing % sequences, resulting in a
> runtime failure or even exploit.  But that could also be a problem
> with the second one too, surely?  (ie. gettext might return three or
> more % sequences).

Right.

But there's nothing we can do about the latter, and there *is* something
we can do about the former: precede with "%s".  Of course, gettext tools
like msgmerge are careful to ensure that %-directives in translations
match those in the original, so it's not a problem, in general.

> OCaml gettext offers two forms of the gettext function, one for plain
> strings and one for format strings[1].  The format string version
> checks that any % sequences in the translated string are compatible
> with those in the original string.  (If not then the original string
> is returned to avoid any exploit).  Sounds as if we need a similar

Nice.

> feature in C gettext.  A cursory check of the info file didn't show
> anything like this.
>
> Rich.
>
> [1] and of course the powerful type system ensures that you always use
> the correct form, ho hum ...

;-)

--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]