[PATCH] Remove extra 0x in the %p formatting string

Franz Sirl Franz.Sirl-kernel at lauterbach.com
Wed May 16 16:18:24 UTC 2018


Am 2018-05-16 um 15:38 schrieb Timur I. Bakeyev via samba-technical:
> On 12 May 2018 at 10:35, Martin Schwenke <martin at meltin.net> wrote:
> 
>> Hi Timur,
>>
>>> Hi all!
>>>
>>> While analyzing debug logs of our customer, I've noticed strange looking
>>> lines like:
>>>
>>> [2018/05/09 16:02:52.629315, 10, pid=907, effective(1001, 1001), real(0,
>>> 0)] ../source3/smbd/open.c:5543(create_file_default)
>>>    create_file: access_mask = 0x100080 file_attributes = 0x10,
>> share_access
>>> = 0x7, create_disposition = 0x1 create_options = 0x1 oplock_request = 0x0
>>> private_flags = 0x0 root_dir_fid = 0x0, ea_list = 0x0x0, sd = 0x0x0,
>> fname
>>> = .
>>>
>>> That 0x0x0 puzzled me and short investigation showed that in few places
>> we
>>> use "0x%p" format string to represent buffer address in the debug logs.
>> Man
>>> page for *printf says:
>>>
>>>       p           The void * pointer argument is printed in hexadecimal
>> (as
>>> if
>>>                   by ‘%#x’ or ‘%#lx’).
>>>
>>> I.e. the address will be already prefixed with the 0x, no need to
>>> explicitly add it.
>>>
>>> Here is a small patch.
>>
>> Looks good.
>>
>> For the changes in lib/dbwrap/dbwrap_tdb.c and source3/smbd/open.c, can
>> you please modernise the debug statements that you touch by changing
>> them as below?
>>
>>    DEBUG(10, (...));
>>
>> to
>>
>>    DBG_DEBUG(...);
>>
>> Thanks...
>>
>> With that:
>>
>> Reviewed-by: Martin Schwenke <martin at meltin.net>
>>
> 
> Thanks for the review, Martin!
> 
> Here are the patches that should fit you requirements, I hope.
> 
> List, can I get a second review, please :)?

Note that %p is not portable, for example Solaris 10/11 don't prefix 0x 
to the value. And glibc prints "(nil)" for a NULL-pointer.

Franz.




More information about the samba-technical mailing list