Re: [PATCH 1/6] libsemanage: make semanage_..._destroy return void

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

 



On Tue, 2017-04-11 at 23:45 +0200, Nicolas Iooss wrote:
> semanage_module_info_destroy() always return 0 ("success") even
> though
> some of its caller want to check its return value. For example commit
> 86e6ae67fd17 ("libsemanage: drop checks on
> semanage_module_info_destroy() value") removed such a caller which
> was
> buggy.
> 
> Discourage using the return value of semanage_..._destroy() functions
> by
> making them return void.

Sorry, my fault - didn't realize this was a public API when I suggested
it.  Can't break the library ABI.  We could use symbol versioning magic
to transition it over, but probably not worth it.

> 
> Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx>
> ---
>  libsemanage/include/semanage/modules.h | 12 ++++--------
>  libsemanage/src/modules.c              | 22 +++++++++-------------
>  2 files changed, 13 insertions(+), 21 deletions(-)
> 
> diff --git a/libsemanage/include/semanage/modules.h
> b/libsemanage/include/semanage/modules.h
> index 4b93e54e7d21..a35de815abbf 100644
> --- a/libsemanage/include/semanage/modules.h
> +++ b/libsemanage/include/semanage/modules.h
> @@ -79,12 +79,10 @@ int semanage_module_info_create(semanage_handle_t
> *sh,
>  
>  /* Frees the members of the module info struct.
>   *
> - * Returns 0 on success and -1 on failure.
> - *
>   * The caller should call free() on the struct.
>   */
> -int semanage_module_info_destroy(semanage_handle_t *handle,
> -				 semanage_module_info_t *modinfo);
> +void semanage_module_info_destroy(semanage_handle_t *handle,
> +				  semanage_module_info_t *modinfo);
>  
>  /* Module Info Getters */
>  
> @@ -168,11 +166,9 @@ int semanage_module_key_create(semanage_handle_t
> *sh,
>  
>  /* Frees members of the @modkey, but not the struct. The caller
> should
>   * call free() on struct.
> - *
> - * Returns 0 on success, and -1 on error.
>   */
> -int semanage_module_key_destroy(semanage_handle_t *sh,
> -				semanage_module_key_t *modkey);
> +void semanage_module_key_destroy(semanage_handle_t *sh,
> +				 semanage_module_key_t *modkey);
>  
>  /* Module Key Getters */
>  
> diff --git a/libsemanage/src/modules.c b/libsemanage/src/modules.c
> index 90c5e4917f97..7bbe3aa1e6db 100644
> --- a/libsemanage/src/modules.c
> +++ b/libsemanage/src/modules.c
> @@ -281,19 +281,19 @@ int
> semanage_module_info_create(semanage_handle_t *sh,
>  
>  hidden_def(semanage_module_info_create)
>  
> -int semanage_module_info_destroy(semanage_handle_t *sh,
> -				 semanage_module_info_t *modinfo)
> +void semanage_module_info_destroy(semanage_handle_t *sh,
> +				  semanage_module_info_t *modinfo)
>  {
>  	assert(sh);
>  
>  	if (!modinfo) {
> -		return 0;
> +		return;
>  	}
>  
>  	free(modinfo->name);
>  	free(modinfo->lang_ext);
>  
> -	return semanage_module_info_init(sh, modinfo);
> +	semanage_module_info_init(sh, modinfo);
>  }
>  
>  hidden_def(semanage_module_info_destroy)
> @@ -323,11 +323,7 @@ int semanage_module_info_clone(semanage_handle_t
> *sh,
>  	int status = 0;
>  	int ret = 0;
>  
> -	ret = semanage_module_info_destroy(sh, target);
> -	if (ret != 0) {
> -		status = -1;
> -		goto cleanup;
> -	}
> +	semanage_module_info_destroy(sh, target);
>  
>  	ret = semanage_module_info_set_priority(sh, target, source-
> >priority);
>  	if (ret != 0) {
> @@ -685,18 +681,18 @@ int
> semanage_module_key_create(semanage_handle_t *sh,
>  
>  hidden_def(semanage_module_key_create)
>  
> -int semanage_module_key_destroy(semanage_handle_t *sh,
> -				semanage_module_key_t *modkey)
> +void semanage_module_key_destroy(semanage_handle_t *sh,
> +				 semanage_module_key_t *modkey)
>  {
>  	assert(sh);
>  
>  	if (!modkey) {
> -		return 0;
> +		return;
>  	}
>  
>  	free(modkey->name);
>  
> -	return semanage_module_key_init(sh, modkey);
> +	semanage_module_key_init(sh, modkey);
>  }
>  
>  hidden_def(semanage_module_key_destroy)
_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.




[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux