[PATCH] rtems: Make rtems_version_control_key() safer
Chris Johns
chrisj at rtems.org
Tue Sep 10 02:00:05 UTC 2019
On 6/9/19 10:34 pm, Sebastian Huber wrote:
> Return the empty string instead of a NULL pointer if no version key is
> available.
> ---
> cpukit/include/rtems/version.h | 9 ++++++---
> cpukit/sapi/src/version.c | 2 +-
> 2 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/cpukit/include/rtems/version.h b/cpukit/include/rtems/version.h
> index d8c1206d91..30dd70cc21 100644
> --- a/cpukit/include/rtems/version.h
> +++ b/cpukit/include/rtems/version.h
> @@ -60,10 +60,13 @@ int rtems_version_revision( void );
>
> /**
> * @brief Returns the version control key for the current version of code that
> - * has been built. The key is specific to the version control system being used
> - * and allows the built version to be identified.
> + * has been built.
> *
> - * @retval int The version's version control key.
> + * The key is specific to the version control system being used and allows the
> + * built version to be identified.
> + *
> + * @return The version control key or the empty string if no version control
> + * key is available.
Or ...
@return The version control key if @ref rtems_version_control_key_valid returns
true.
> */
> const char *rtems_version_control_key( void );
>
> diff --git a/cpukit/sapi/src/version.c b/cpukit/sapi/src/version.c
> index e1e7705863..065a45c005 100644
> --- a/cpukit/sapi/src/version.c
> +++ b/cpukit/sapi/src/version.c
> @@ -58,6 +58,6 @@ const char *rtems_version_control_key( void )
> #ifdef RTEMS_VERSION_VC_KEY
> return RTEMS_VERSION_VC_KEY;
> #else
> - return NULL;
> + return "";
> #endif
> }
I would prefer we provide an interface to say the version control key has been
set rather than exposing how we manage it. I think the change to not return NULL
is the correct one. What about adding ..
bool rtems_version_control_key_valid( void )
{
return strlen( rtems_version_control_key( ) ) != 0;
}
I have a feeling we may wedge ourselves in the future with users having code to
check the length.
Chris
More information about the devel
mailing list