Fix memory leaks.
[gnutls.git] / gl / strerror.c
blob9fe437db78df8a661bb2f6709b8d943b102832cc
1 /* strerror.c --- POSIX compatible system error routine
3 Copyright (C) 2007 Free Software Foundation, Inc.
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18 #include <config.h>
20 #include <string.h>
22 #if REPLACE_STRERROR
24 # include <stdio.h>
26 # include "intprops.h"
28 # undef strerror
29 # if ! HAVE_DECL_STRERROR
30 # define strerror(n) NULL
31 # endif
33 char *
34 rpl_strerror (int n)
36 char *result = strerror (n);
38 if (result == NULL || result[0] == '\0')
40 static char const fmt[] = "Unknown error (%d)";
41 static char mesg[sizeof fmt + INT_STRLEN_BOUND (n)];
42 sprintf (mesg, fmt, n);
43 return mesg;
46 return result;
49 #endif