Blame readline/xfree.c

Packit Service 706eca
/* xfree.c -- safe version of free that ignores attempts to free NUL */
Packit Service 706eca
Packit Service 706eca
/* Copyright (C) 1991-2010 Free Software Foundation, Inc.
Packit Service 706eca
Packit Service 706eca
   This file is part of the GNU Readline Library (Readline), a library
Packit Service 706eca
   for reading lines of text with interactive input and history editing.      
Packit Service 706eca
Packit Service 706eca
   Readline is free software: you can redistribute it and/or modify
Packit Service 706eca
   it under the terms of the GNU General Public License as published by
Packit Service 706eca
   the Free Software Foundation, either version 3 of the License, or
Packit Service 706eca
   (at your option) any later version.
Packit Service 706eca
Packit Service 706eca
   Readline is distributed in the hope that it will be useful,
Packit Service 706eca
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 706eca
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 706eca
   GNU General Public License for more details.
Packit Service 706eca
Packit Service 706eca
   You should have received a copy of the GNU General Public License
Packit Service 706eca
   along with Readline.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 706eca
*/
Packit Service 706eca
Packit Service 706eca
#define READLINE_LIBRARY
Packit Service 706eca
Packit Service 706eca
#if defined (HAVE_CONFIG_H)
Packit Service 706eca
#include <config.h>
Packit Service 706eca
#endif
Packit Service 706eca
Packit Service 706eca
#if defined (HAVE_STDLIB_H)
Packit Service 706eca
#  include <stdlib.h>
Packit Service 706eca
#else
Packit Service 706eca
#  include "ansi_stdlib.h"
Packit Service 706eca
#endif /* HAVE_STDLIB_H */
Packit Service 706eca
Packit Service 706eca
#include <stdio.h>
Packit Service 706eca
Packit Service 706eca
#include "xmalloc.h"
Packit Service 706eca
#include "readline.h"
Packit Service 706eca
Packit Service 706eca
/* **************************************************************** */
Packit Service 706eca
/*								    */
Packit Service 706eca
/*		   Memory Deallocation.				    */
Packit Service 706eca
/*								    */
Packit Service 706eca
/* **************************************************************** */
Packit Service 706eca
Packit Service 706eca
/* Use this as the function to call when adding unwind protects so we
Packit Service 706eca
   don't need to know what free() returns. */
Packit Service 706eca
void
Packit Service 706eca
xfree (string)
Packit Service 706eca
     PTR_T string;
Packit Service 706eca
{
Packit Service 706eca
  /* Leak a bit.  */
Packit Service 706eca
  if (RL_ISSTATE(RL_STATE_SIGHANDLER))
Packit Service 706eca
    return;
Packit Service 706eca
Packit Service 706eca
  if (string)
Packit Service 706eca
    free (string);
Packit Service 706eca
}