[PATCH] Fix getconf
Jakub Jelinek
jakub@redhat.com
Mon Dec 13 11:36:00 GMT 2004
Hi!
http://www.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html
says about _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS:
The format of each name shall be suitable for use with the getconf
-v option.
and http://www.opengroup.org/onlinepubs/009695399/utilities/getconf.html
clearly uses POSIX_V6_* as arguments to -v option.
So we should not print _POSIX_V6_* but POSIX_V6_* and adjust
/usr/libexec/getconf/ filenames accordingly.
2004-12-13 Jakub Jelinek <jakub@redhat.com>
* posix/getconf.c (main): Prepend just $GETCONF_DIR/ instead of
$GETCONF_DIR/_ to spec.
* posix/confstr.c (confstr): Remove leading underscores for
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS.
--- libc/posix/confstr.c.jj 2004-12-06 12:40:55.000000000 +0100
+++ libc/posix/confstr.c 2004-12-13 12:29:59.189578287 +0100
@@ -55,7 +55,7 @@ confstr (name, buf, len)
Currently this means all environment which the system allows. */
{
- char restenvs[4 * sizeof "_POSIX_V6_LPBIG_OFFBIG"];
+ char restenvs[4 * sizeof "POSIX_V6_LPBIG_OFFBIG"];
string_len = 0;
#ifndef _POSIX_V6_ILP32_OFF32
@@ -63,9 +63,9 @@ confstr (name, buf, len)
#endif
#if !defined _POSIX_V6_ILP32_OFF32 || _POSIX_V6_ILP32_OFF32 > 0
{
- memcpy (restenvs + string_len, "_POSIX_V6_ILP32_OFF32",
- sizeof "_POSIX_V6_ILP32_OFF32" - 1);
- string_len += sizeof "_POSIX_V6_ILP32_OFF32" - 1;
+ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFF32",
+ sizeof "POSIX_V6_ILP32_OFF32" - 1);
+ string_len += sizeof "POSIX_V6_ILP32_OFF32" - 1;
}
#endif
#ifndef _POSIX_V6_ILP32_OFFBIG
@@ -75,9 +75,9 @@ confstr (name, buf, len)
{
if (string_len)
restenvs[string_len++] = '\n';
- memcpy (restenvs + string_len, "_POSIX_V6_ILP32_OFFBIG",
- sizeof "_POSIX_V6_ILP32_OFFBIG" - 1);
- string_len += sizeof "_POSIX_V6_ILP32_OFFBIG" - 1;
+ memcpy (restenvs + string_len, "POSIX_V6_ILP32_OFFBIG",
+ sizeof "POSIX_V6_ILP32_OFFBIG" - 1);
+ string_len += sizeof "POSIX_V6_ILP32_OFFBIG" - 1;
}
#endif
#ifndef _POSIX_V6_LP64_OFF64
@@ -87,9 +87,9 @@ confstr (name, buf, len)
{
if (string_len)
restenvs[string_len++] = '\n';
- memcpy (restenvs + string_len, "_POSIX_V6_LP64_OFF64",
- sizeof "_POSIX_V6_LP64_OFF64" - 1);
- string_len += sizeof "_POSIX_V6_LP64_OFF64" - 1;
+ memcpy (restenvs + string_len, "POSIX_V6_LP64_OFF64",
+ sizeof "POSIX_V6_LP64_OFF64" - 1);
+ string_len += sizeof "POSIX_V6_LP64_OFF64" - 1;
}
#endif
#ifndef _POSIX_V6_LPBIG_OFFBIG
@@ -99,9 +99,9 @@ confstr (name, buf, len)
{
if (string_len)
restenvs[string_len++] = '\n';
- memcpy (restenvs + string_len, "_POSIX_V6_LPBIG_OFFBIG",
- sizeof "_POSIX_V6_LPBIG_OFFBIG" - 1);
- string_len += sizeof "_POSIX_V6_LPBIG_OFFBIG" - 1;
+ memcpy (restenvs + string_len, "POSIX_V6_LPBIG_OFFBIG",
+ sizeof "POSIX_V6_LPBIG_OFFBIG" - 1);
+ string_len += sizeof "POSIX_V6_LPBIG_OFFBIG" - 1;
}
#endif
restenvs[string_len++] = '\0';
--- libc/posix/getconf.c.jj 2004-12-13 09:39:45.000000000 +0100
+++ libc/posix/getconf.c 2004-12-13 12:24:50.442826735 +0100
@@ -997,7 +997,7 @@ warranty; not even for MERCHANTABILITY o
{
char default_name[getconf_dirlen + sizeof "/default"];
memcpy (mempcpy (default_name, getconf_dir, getconf_dirlen),
- "/default", sizeof "/default");
+ "/default", sizeof "/default");
int len = readlink (default_name, buf, sizeof buf - 1);
if (len > 0)
{
@@ -1034,10 +1034,10 @@ warranty; not even for MERCHANTABILITY o
{
const char *args[argc + 3];
size_t spec_len = strlen (spec);
- char getconf_name[getconf_dirlen + 2 + spec_len + 1];
+ char getconf_name[getconf_dirlen + 1 + spec_len + 1];
memcpy (mempcpy (mempcpy (getconf_name, getconf_dir,
- getconf_dirlen),
- "/_", 2), spec, spec_len + 1);
+ getconf_dirlen),
+ "/", 1), spec, spec_len + 1);
args[0] = argv0;
args[1] = "-v";
args[2] = spec;
Jakub
More information about the Libc-hacker
mailing list