[libvirt PATCH 05/11] Replace bzero() with memset()

Peter Krempa pkrempa at redhat.com
Thu Jan 28 11:03:36 UTC 2021

On Thu, Jan 28, 2021 at 10:59:41 +0000, Daniel Berrange wrote:
> On Thu, Jan 28, 2021 at 11:45:07AM +0100, Peter Krempa wrote:
> > On Thu, Jan 28, 2021 at 11:24:35 +0100, Tim Wiederhake wrote:
> > > This was found by clang-tidy's
> > > "clang-analyzer-security.insecureAPI.bzero" check.
> > 
> > Any reasoning behind why bzero is bad?
> Yeah, it is wierd to call this an insecure API.  If anything memset is
> more dangerous because people invert the 2nd and 3rd args, resulting
> in not setting any bytes at all.

According to the manpage it can allegedly be optimized out:

       The  explicit_bzero()  function  performs the same task as bzero().  It
       differs from bzero() in that it guarantees that compiler  optimizations
       will  not  remove  the erase operation if the compiler deduces that the
       operation is "unnecessary".
> None the less  bzero is deprecated, so it makes sense to use the
> memset funtion in general.

Yes it does, but the reason should be mentioned in the commit message.

More information about the libvir-list mailing list