mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
* nis/nis_domain_of_r.c (nis_domain_of_r): Add missing buffer
overflow test.
This commit is contained in:
parent
a17fa6100d
commit
2d571cd125
@ -1,3 +1,8 @@
|
||||
2006-05-23 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* nis/nis_domain_of_r.c (nis_domain_of_r): Add missing buffer
|
||||
overflow test.
|
||||
|
||||
2006-05-20 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* nis/nis_call.c (__prepare_niscall): New function. Split out
|
||||
|
@ -29,6 +29,7 @@ extern int _nsl_default_nss (void);
|
||||
/* Set up everything for a call to __do_niscall3. */
|
||||
extern nis_error __prepare_niscall (const_nis_name name, directory_obj **dirp,
|
||||
dir_binding *bptrp, unsigned int flags);
|
||||
libnsl_hidden_proto (__prepare_niscall)
|
||||
|
||||
extern struct ib_request *__create_ib_request (const_nis_name name,
|
||||
unsigned int flags);
|
||||
|
@ -30,6 +30,7 @@
|
||||
|
||||
#include "nis_xdr.h"
|
||||
#include "nis_intern.h"
|
||||
#include <libnsl.h>
|
||||
|
||||
static const struct timeval RPCTIMEOUT = {10, 0};
|
||||
static const struct timeval UDPTIMEOUT = {5, 0};
|
||||
@ -293,6 +294,8 @@ __do_niscall3 (dir_binding *dbp, u_long prog, xdrproc_t xargs, caddr_t req,
|
||||
|
||||
return retcode;
|
||||
}
|
||||
libnsl_hidden_def (__do_niscall3)
|
||||
|
||||
|
||||
nis_error
|
||||
__do_niscall2 (const nis_server *server, u_int server_len, u_long prog,
|
||||
@ -573,6 +576,7 @@ __prepare_niscall (const_nis_name name, directory_obj **dirp,
|
||||
|
||||
return retcode;
|
||||
}
|
||||
libnsl_hidden_def (__prepare_niscall)
|
||||
|
||||
|
||||
nis_error
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 1997, 2004 Free Software Foundation, Inc.
|
||||
/* Copyright (c) 1997, 2004, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
|
||||
|
||||
@ -29,6 +29,7 @@ nis_domain_of_r (const_nis_name name, char *buffer, size_t buflen)
|
||||
|
||||
if (buffer == NULL)
|
||||
{
|
||||
erange:
|
||||
__set_errno (ERANGE);
|
||||
return NULL;
|
||||
}
|
||||
@ -44,7 +45,11 @@ nis_domain_of_r (const_nis_name name, char *buffer, size_t buflen)
|
||||
cptr_len = strlen (cptr);
|
||||
|
||||
if (cptr_len == 0)
|
||||
{
|
||||
if (buflen < 2)
|
||||
goto erange;
|
||||
return strcpy (buffer, ".");
|
||||
}
|
||||
|
||||
if (__builtin_expect (cptr_len >= buflen, 0))
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
/* Copyright (c) 1997,1998,1999,2000,2001,2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
|
||||
|
||||
@ -66,6 +66,7 @@ extern nis_error __do_niscall3 (dir_binding *dbp, u_long prog,
|
||||
xdrproc_t xargs, caddr_t req,
|
||||
xdrproc_t xres, caddr_t resp,
|
||||
unsigned int flags, nis_cb *cb);
|
||||
libnsl_hidden_proto (__do_niscall3)
|
||||
|
||||
extern u_short __pmap_getnisport (struct sockaddr_in *address, u_long program,
|
||||
u_long version, u_int protocol);
|
||||
|
Loading…
Reference in New Issue
Block a user