[Freeipa-devel] [PATCH 0224-0225] Add function attributes warn_unused_result and nonnull and add missing CHECK()s to string operations

Petr Spacek pspacek at redhat.com
Mon Feb 24 13:04:31 UTC 2014


On 21.2.2014 19:14, Lukas Slebodnik wrote:
> On (21/02/14 16:12), Petr Spacek wrote:
>> Hello,
>>
>> Add function attributes warn_unused_result and nonnull
>> where appropriate and add missing CHECK()s to string operations.
>>
>> Lukas, thanks for catching the missing CHECK() around str_new().
>>
>> As a reward, you can review attached patches.
>>
>> Have fun! :-)
>>
>> --
>> Petr^2 Spacek
>
>>From 063f776fc083c1fa26419a1ea63df98b9953826f Mon Sep 17 00:00:00 2001
>> From: Petr Spacek <pspacek at redhat.com>
>> Date: Fri, 21 Feb 2014 15:21:36 +0100
>> Subject: [PATCH] Add missing CHECK()s to string operations.
>>
>> Signed-off-by: Petr Spacek <pspacek at redhat.com>
>> ---
>> src/ldap_helper.c |  4 ++--
>> src/str.c         |  4 ++--
>> src/str.h         | 28 ++++++++++++++--------------
>> src/util.h        |  2 ++
>> 4 files changed, 20 insertions(+), 18 deletions(-)
>>
>> diff --git a/src/ldap_helper.c b/src/ldap_helper.c
>> index b0dd3391f4dca88992ac7869b34d943a381d51be..be37ce575c0965856afabcb59c5eba949ad902fd 100644
>> --- a/src/ldap_helper.c
>> +++ b/src/ldap_helper.c
>> @@ -1772,7 +1772,7 @@ ldap_replace_serial(ldap_instance_t *inst, dns_name_t *zone,
>>
>> 	REQUIRE(inst != NULL);
>>
>> -	str_new(inst->mctx, &dn);
>> +	CHECK(str_new(inst->mctx, &dn));
>> 	CHECK(dnsname_to_dn(inst->zone_register, zone, dn));
>>
>> 	change.mod_op = LDAP_MOD_REPLACE;
>> @@ -2405,7 +2405,7 @@ ldap_query(ldap_instance_t *ldap_inst, ldap_connection_t *ldap_conn,
>> 		CHECK(ldap_pool_getconnection(ldap_inst->pool, &ldap_conn));
>>
>> 	va_start(ap, filter);
>> -	str_vsprintf(ldap_qresult->query_string, filter, ap);
>> +	CHECK(str_vsprintf(ldap_qresult->query_string, filter, ap));
>> 	va_end(ap);
>      ^^^^^^^^^^
> va_end have to be called every time.
> It would be better to move check after va_end(ap)
>          va_start(ap, filter);
>          result = str_vsprintf(ldap_qresult->query_string, filter, ap);
>          va_end(ap);
>          CHECK(result);
>
> <snip>

Fixed and pushed to master: 960e00f4dee9a4be82c61a968e7b31aa863638cd

>>From 50cb2a22cad24463145b8e18582d13fc20dc8011 Mon Sep 17 00:00:00 2001
>> From: Petr Spacek <pspacek at redhat.com>
>> Date: Fri, 21 Feb 2014 15:58:19 +0100
>> Subject: [PATCH] Add function attributes warn_unused_result and nonnull where
>> appropriate.
>>
>> Signed-off-by: Petr Spacek <pspacek at redhat.com>
>> ---
>> src/acl.c           |  22 ++++----
>> src/acl.h           |   6 +-
>> src/fs.h            |   4 +-
>> src/fwd_register.h  |  10 ++--
>> src/krb5_helper.c   |   2 +-
>> src/krb5_helper.h   |   2 +-
>> src/ldap_convert.c  |   8 +--
>> src/ldap_convert.h  |  10 ++--
>> src/ldap_entry.c    |   2 +-
>> src/ldap_entry.h    |  26 ++++-----
>> src/ldap_helper.c   | 156 ++++++++++++++++++++++++++--------------------------
>> src/ldap_helper.h   |   2 +-
>> src/rbt_helper.c    |   2 +-
>> src/rbt_helper.h    |   4 +-
>> src/rdlist.c        |   4 +-
>> src/rdlist.h        |   8 +--
>> src/semaphore.h     |   4 +-
>> src/settings.c      |   4 +-
>> src/settings.h      |  18 +++---
>> src/syncrepl.c      |   2 +-
>> src/syncrepl.h      |  14 ++---
>> src/zone_manager.c  |   4 +-
>> src/zone_manager.h  |   6 +-
>> src/zone_register.h |  18 +++---
>> 24 files changed, 169 insertions(+), 169 deletions(-)
>>
>
> Patch works well. I did a small test with a function find_db_instance.

Pushed to master: 7e4323eacb74ad6a5658cc256fc4c347abc01ddc

>
> -       result = find_db_instance(name, &db_inst);
> +       find_db_instance(name, &db_inst);
>
>    CC       ldap_la-zone_manager.lo
> ../src/zone_manager.c:126:2: error: ignoring return value of function declared with
>        warn_unused_result attribute [-Werror,-Wunused-result]
>          find_db_instance(name, &db_inst);
>          ^~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
> 1 error generated.
>
> Attribute "__attribute__((warn_unused_result))" is not generated
> if macro __GNUC__ is not defined. (make CFLAGS+="-U__GNUC__")
>
> Some lines are longer than 80 columns, but I am not very familiar with
> your coding style. Otherwise 2nd patch looks good.
>
> LS

Thank you very much for your time!

-- 
Petr^2 Spacek




More information about the Freeipa-devel mailing list