[PATCH libXau] Free XauFileName() static buffer at exit

Matt Turner mattst88 at gmail.com
Fri Apr 20 14:31:27 PDT 2012


On Fri, Apr 20, 2012 at 5:18 PM, Chase Douglas
<chase.douglas at canonical.com> wrote:
> XauFileName() may allocate and return a static buffer. The only
> way to ensure it is freed is to deallocate it when the program exits.
>
> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
> ---
>  AuFileName.c |   17 ++++++++++++++++-
>  1 files changed, 16 insertions(+), 1 deletions(-)
>
> diff --git a/AuFileName.c b/AuFileName.c
> index f384f75..bc7b177 100644
> --- a/AuFileName.c
> +++ b/AuFileName.c
> @@ -31,13 +31,22 @@ in this Software without prior written authorization from The Open Group.
>  #include <X11/Xos.h>
>  #include <stdlib.h>
>
> +static char *buf = NULL;
> +
> +static void
> +free_filename_buffer(void)
> +{
> +    free(buf);
> +    buf = NULL;
> +}
> +

Strictly speaking, you don't need to set buf = NULL in either place.
static variables are automatically initialized, and I can't imagine
why the program should care what the value of buf is when it's
exiting. :)

Doesn't really matter though.


More information about the xorg-devel mailing list