[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1469520 - /subversion/trunk/subversion/libsvn_fs_fs/tree.c

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Thu, 18 Apr 2013 19:53:47 +0100

blair_at_apache.org writes:

> Author: blair
> Date: Thu Apr 18 18:41:55 2013
> New Revision: 1469520
>
> URL: http://svn.apache.org/r1469520
> Log:
> open_path(): silence compiler warning.
>
> subversion/libsvn_fs_fs/tree.c: In function 'open_path':
> subversion/libsvn_fs_fs/tree.c:916: warning: 'directory' may be used uninitialized in this function
>
> * subversion/libsvn_fs_fs/tree.c
> (open_path):
> Set directory to NULL to silence a compiler warning.
>
> Modified:
> subversion/trunk/subversion/libsvn_fs_fs/tree.c
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1469520&r1=1469519&r2=1469520&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Thu Apr 18 18:41:55 2013
> @@ -913,7 +913,7 @@ open_path(parent_path_t **parent_path_p,
> a sibling of PATH has been presently accessed. Try to start the lookup
> directly at the parent node, if the caller did not requested the full
> parent chain. */
> - const char *directory;
> + const char *directory = NULL;
> assert(svn_fs__is_canonical_abspath(path));
> if (flags & open_path_node_only)
> {
>
>

In the past we have not been adding these sorts of initialisations. A
build without warnings is nice but unnecessary initialisation can reduce
the effectiveness of memory checking tools. In this particular case the
code is:

  if (here)
    {
      path_so_far = directory;
      rest = path + strlen(directory) + 1;
    }

Passing NULL to strlen is not guaranteed to work but will work on some
platforms. Without the initialisation a memory checking tool like
valgrind will trigger if strlen were to access directory. The
initialisation means there is no longer a guarantee that valgrind will
trigger.

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download
Received on 2013-04-18 20:54:43 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.