mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-23 13:09:58 +08:00
Return with error if malloc fails.
This commit is contained in:
parent
eac320a40c
commit
5496874540
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1998.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@ -93,15 +93,21 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
|
||||
if (intern->start == NULL)
|
||||
{
|
||||
intern->start = malloc (sizeof (struct response_t));
|
||||
if (intern->start == NULL)
|
||||
return YP_FALSE;
|
||||
intern->next = intern->start;
|
||||
}
|
||||
else
|
||||
{
|
||||
intern->next->next = malloc (sizeof (struct response_t));
|
||||
if (intern->next->next == NULL)
|
||||
return YP_FALSE;
|
||||
intern->next = intern->next->next;
|
||||
}
|
||||
intern->next->next = NULL;
|
||||
intern->next->val = malloc (invallen + 1);
|
||||
if (intern->next->val == NULL)
|
||||
return YP_FALSE;
|
||||
strncpy (intern->next->val, inval, invallen);
|
||||
intern->next->val[invallen] = '\0';
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
@ -64,15 +64,21 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
|
||||
if (start == NULL)
|
||||
{
|
||||
start = malloc (sizeof (struct response));
|
||||
if (start == NULL)
|
||||
return YP_FALSE;
|
||||
next = start;
|
||||
}
|
||||
else
|
||||
{
|
||||
next->next = malloc (sizeof (struct response));
|
||||
if (next->next == NULL)
|
||||
return YP_FALSE;
|
||||
next = next->next;
|
||||
}
|
||||
next->next = NULL;
|
||||
next->val = malloc (invallen + 1);
|
||||
if (next->val == NULL)
|
||||
return YP_FALSE;
|
||||
strncpy (next->val, inval, invallen);
|
||||
next->val[invallen] = '\0';
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1998.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@ -61,15 +61,21 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
|
||||
if (intern->start == NULL)
|
||||
{
|
||||
intern->start = malloc (sizeof (struct response_t));
|
||||
if (intern->start == NULL)
|
||||
return YP_FALSE;
|
||||
intern->next = intern->start;
|
||||
}
|
||||
else
|
||||
{
|
||||
intern->next->next = malloc (sizeof (struct response_t));
|
||||
if (intern->next->next == NULL)
|
||||
return YP_FALSE;
|
||||
intern->next = intern->next->next;
|
||||
}
|
||||
intern->next->next = NULL;
|
||||
intern->next->val = malloc (invallen + 1);
|
||||
if (intern->next->val == NULL)
|
||||
return YP_FALSE;
|
||||
strncpy (intern->next->val, inval, invallen);
|
||||
intern->next->val[invallen] = '\0';
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
@ -74,9 +74,8 @@ _nss_nis_setnetgrent (char *group)
|
||||
&result, &len));
|
||||
if (status == NSS_STATUS_SUCCESS)
|
||||
{
|
||||
if (len > 0)
|
||||
if (len > 0 && (data = malloc (len + 1)) != NULL)
|
||||
{
|
||||
data = malloc (len + 1);
|
||||
data_size = len;
|
||||
cursor = strncpy (data, result, len + 1);
|
||||
data[len] = '\0';
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@ -56,15 +56,21 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
|
||||
if (start == NULL)
|
||||
{
|
||||
start = malloc (sizeof (struct response));
|
||||
if (start == NULL)
|
||||
return YP_FALSE;
|
||||
next = start;
|
||||
}
|
||||
else
|
||||
{
|
||||
next->next = malloc (sizeof (struct response));
|
||||
if (next->next == NULL)
|
||||
return YP_FALSE;
|
||||
next = next->next;
|
||||
}
|
||||
next->next = NULL;
|
||||
next->val = malloc (invallen + 1);
|
||||
if (next->val == NULL)
|
||||
return YP_FALSE;
|
||||
strncpy (next->val, inval, invallen);
|
||||
next->val[invallen] = '\0';
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@ -64,15 +64,21 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
|
||||
if (intern->start == NULL)
|
||||
{
|
||||
intern->start = malloc (sizeof (struct response_t));
|
||||
if (intern->start == NULL)
|
||||
return YP_FALSE;
|
||||
intern->next = intern->start;
|
||||
}
|
||||
else
|
||||
{
|
||||
intern->next->next = malloc (sizeof (struct response_t));
|
||||
if (intern->next->next == NULL)
|
||||
return YP_FALSE;
|
||||
intern->next = intern->next->next;
|
||||
}
|
||||
intern->next->next = NULL;
|
||||
intern->next->val = malloc (invallen + 1);
|
||||
if (intern->next->val == NULL)
|
||||
return YP_FALSE;
|
||||
strncpy (intern->next->val, inval, invallen);
|
||||
intern->next->val[invallen] = '\0';
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
@ -65,15 +65,21 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
|
||||
if (intern->start == NULL)
|
||||
{
|
||||
intern->start = malloc (sizeof (struct response_t));
|
||||
if (intern->start == NULL)
|
||||
return YP_FALSE; /* We have no error code for out of memory */
|
||||
intern->next = intern->start;
|
||||
}
|
||||
else
|
||||
{
|
||||
intern->next->next = malloc (sizeof (struct response_t));
|
||||
if (intern->next->next == NULL)
|
||||
return YP_FALSE; /* We have no error code for out of memory */
|
||||
intern->next = intern->next->next;
|
||||
}
|
||||
intern->next->next = NULL;
|
||||
intern->next->val = malloc (invallen + 1);
|
||||
if (intern->next->val == NULL)
|
||||
return YP_FALSE; /* We have no error code for out of memory */
|
||||
strncpy (intern->next->val, inval, invallen);
|
||||
intern->next->val[invallen] = '\0';
|
||||
}
|
||||
|
14
nis/ypclnt.c
14
nis/ypclnt.c
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
@ -80,6 +80,8 @@ __yp_bind (const char *domain, dom_binding **ypdb)
|
||||
{
|
||||
is_new = 1;
|
||||
ysd = (dom_binding *) calloc (1, sizeof *ysd);
|
||||
if (ysd == NULL)
|
||||
return YPERR_RESRC;
|
||||
}
|
||||
|
||||
#if USE_BINDINGDIR
|
||||
@ -445,6 +447,8 @@ yp_match (const char *indomain, const char *inmap, const char *inkey,
|
||||
|
||||
*outvallen = resp.val.valdat_len;
|
||||
*outval = malloc (*outvallen + 1);
|
||||
if (*outval == NULL)
|
||||
return YPERR_RESRC;
|
||||
memcpy (*outval, resp.val.valdat_val, *outvallen);
|
||||
(*outval)[*outvallen] = '\0';
|
||||
|
||||
@ -483,10 +487,14 @@ yp_first (const char *indomain, const char *inmap, char **outkey,
|
||||
|
||||
*outkeylen = resp.key.keydat_len;
|
||||
*outkey = malloc (*outkeylen + 1);
|
||||
if (*outkey == NULL)
|
||||
return YPERR_RESRC;
|
||||
memcpy (*outkey, resp.key.keydat_val, *outkeylen);
|
||||
(*outkey)[*outkeylen] = '\0';
|
||||
*outvallen = resp.val.valdat_len;
|
||||
*outval = malloc (*outvallen + 1);
|
||||
if (*outval == NULL)
|
||||
return YPERR_RESRC;
|
||||
memcpy (*outval, resp.val.valdat_val, *outvallen);
|
||||
(*outval)[*outvallen] = '\0';
|
||||
|
||||
@ -529,10 +537,14 @@ yp_next (const char *indomain, const char *inmap, const char *inkey,
|
||||
|
||||
*outkeylen = resp.key.keydat_len;
|
||||
*outkey = malloc (*outkeylen + 1);
|
||||
if (*outkey == NULL)
|
||||
return YPERR_RESRC;
|
||||
memcpy (*outkey, resp.key.keydat_val, *outkeylen);
|
||||
(*outkey)[*outkeylen] = '\0';
|
||||
*outvallen = resp.val.valdat_len;
|
||||
*outval = malloc (*outvallen + 1);
|
||||
if (*outval == NULL)
|
||||
return YPERR_RESRC;
|
||||
memcpy (*outval, resp.val.valdat_val, *outvallen);
|
||||
(*outval)[*outvallen] = '\0';
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user