1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-16 16:50:21 +02:00

(scm_make_regexp): Free rx on error, to avoid memory leak.

This commit is contained in:
Kevin Ryde 2004-07-09 23:34:55 +00:00
parent 8c08a5a956
commit d704b2515d

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -210,9 +210,12 @@ SCM_DEFINE (scm_make_regexp, "make-regexp", 1, 0, 1,
cflags & ~REG_NOSUB); cflags & ~REG_NOSUB);
if (status != 0) if (status != 0)
{ {
char *errmsg = scm_regexp_error_msg (status, rx);
free (rx);
scm_done_free (sizeof (regex_t));
scm_error (scm_regexp_error_key, scm_error (scm_regexp_error_key,
FUNC_NAME, FUNC_NAME,
scm_regexp_error_msg (status, rx), errmsg,
SCM_BOOL_F, SCM_BOOL_F,
SCM_BOOL_F); SCM_BOOL_F);
/* never returns */ /* never returns */