[lvm-devel] [PATCH 17/23] Add check for dm_snprintf result
Zdenek Kabelac
zkabelac at redhat.com
Wed Dec 22 10:34:47 UTC 2010
Dne 21.12.2010 18:38, Milan Broz napsal(a):
>> /* If the VG name is empty then lock the unused PVs */
>> - if (is_orphan_vg(resource) || is_global_vg(resource) || (flags & LCK_CACHE))
>> - dm_snprintf(lockname, sizeof(lockname), "P_%s",
>> - resource);
>> - else
>> - dm_snprintf(lockname, sizeof(lockname), "V_%s",
>> - resource);
>> + if (dm_snprintf(lockname, sizeof(lockname), "%c_%s",
>> + (is_orphan_vg(resource) ||
>> + is_global_vg(resource) ||
>> + (flags & LCK_CACHE)) ? 'P' : 'V',
>> + resource) < 0) {
>> + log_error("Locking resource %s too long.", resource);
>> + return 0;
>> + }
>
> I cannot imagine how this can happen. First parm is fixed char, second is resource string
> with exact length. And char lockname[PATH_MAX];
One shiny afternoon day someone could think about using 256byte long VG and LV
uuids and it will nicely fail ;)
So take this just like an assert.
>
> Should we check for glibc and clompiler bugs also? :)
>
> Well, isn't return_0 here enough?
>
First trace is supposed to be always some 'log_error'
If you print only 'stack' without log_error - internal error is generated.
(Thought we have it wrong on many places in the code...)
Zdenek
More information about the lvm-devel
mailing list