1 /* Test to verify that overlong hostname is rejected by clnt_create
2 and doesn't cause a buffer overflow (bug 22542).
4 Copyright (C) 2022-2024 Free Software Foundation, Inc.
5 This file is part of the GNU C Library.
7 The GNU C Library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
12 The GNU C Library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 You should have received a copy of the GNU Lesser General Public
18 License along with the GNU C Library; if not, see
19 <http://www.gnu.org/licenses/>. */
24 #include <support/check.h>
25 #include <sys/socket.h>
31 /* Create an arbitrary hostname that's longer than fits in sun_path. */
32 char name
[sizeof ((struct sockaddr_un
*)0)->sun_path
* 2];
33 memset (name
, 'x', sizeof name
- 1);
34 name
[sizeof name
- 1] = '\0';
37 CLIENT
*clnt
= clnt_create (name
, 0, 0, "unix");
39 TEST_VERIFY (clnt
== NULL
);
40 TEST_COMPARE (errno
, EINVAL
);
44 #include <support/test-driver.c>