[libvirt] [PATCH] util: storage: Fix build after 25924dec0f9329d429aadae14e273602307e2214

Peter Krempa pkrempa at redhat.com
Wed Jul 9 08:16:10 UTC 2014


On 07/09/14 10:12, Michal Privoznik wrote:
> On 09.07.2014 10:05, Peter Krempa wrote:
>> The commit referenced above changed function arguments of
>> virStorageFileGetMetadataFromBuf() but didn't tweak the
>> ATTRIBUTE_NONNULL tied to them. This was caught by coverity as it
>> actually obeys them. We disabled them for GCC and thus it didn't show
>> up.
>>
>> Additionally in commit 3ea661deeabadc3c114dfb6f662b9fd17d714a01 I passed
>> NULL to the backingFormat argument which was also marked as nonnull. Use
>> a dummy int's address when the argument isn't supplied so that the code
>> doesn't need to change much.
>> ---
>>   src/util/virstoragefile.c | 4 ++++
>>   src/util/virstoragefile.h | 3 +--
>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>

>> diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
>> index 744a6ba..528cfad 100644
>> --- a/src/util/virstoragefile.h
>> +++ b/src/util/virstoragefile.h
>> @@ -301,8 +301,7 @@ virStorageSourcePtr
>> virStorageFileGetMetadataFromBuf(const char *path,
>>                                                        size_t len,
>>                                                        int format,
>>                                                        int
>> *backingFormat)
>> -    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4)
>> -    ATTRIBUTE_NONNULL(5);
>> +    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
>>   int virStorageFileChainGetBroken(virStorageSourcePtr chain,
>>                                    char **broken_file);
>>
> 
> So if we need to cripple passing NULL, why do we even have
> ATTRIBUTE_NONNULL? Wouldn't it be simpler if
> virStorageFileGetMetadataFromBuf would accept NULL?

This patch actually removes the ATTRIBUTE_NONNULL from two places.

Argument 4, as it's now an int and the attribute doesn't make sense there.

And argument 5 as we are passing NULL in one place now. Therefore I also
added the null tolerance code as the underlying code doesn't tolerate
NULL. In virStorageFileGetMetadataFromFD we do the same stuff.

Peter


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140709/22e4fbfd/attachment-0001.sig>


More information about the libvir-list mailing list