From: Todd C. Miller Date: Wed, 6 Dec 1995 22:26:22 +0000 (+0000) Subject: now use a temp file for determining max len of uid_t in string form. X-Git-Tag: SUDO_1_4_0~55 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=23df4113caadbecafbf203298edacb3dd7320cb0;p=sudo now use a temp file for determining max len of uid_t in string form. the old hacky way broke on netbsd --- diff --git a/aclocal.m4 b/aclocal.m4 index 74489159b..63c0d0572 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -221,23 +221,31 @@ AC_DEFUN(SUDO_UID_T_LEN, [AC_REQUIRE([AC_TYPE_UID_T]) AC_MSG_CHECKING(max length of uid_t) AC_CACHE_VAL(sudo_cv_uid_t_len, -[AC_TRY_RUN( +[rm -f conftestdata +AC_TRY_RUN( [#include #include #include #include main() { -#ifdef MAXUID + FILE *f; char b[BUFSIZ]; - (void) sprintf(b, "%ld", MAXUID); - exit(strlen(b)+1); /* add one just in case it is signed... */ +#ifdef MAXUID + uid_t u = MAXUID; #else - uid_t u = (uid_t) -1; char b[BUFSIZ]; - (void) sprintf(b, "%u", u); - exit(strlen(b)); + uid_t u = (uid_t) -1; #endif -}], sudo_cv_uid_t_len=10, sudo_cv_uid_t_len=$?) + + if ((f = fopen("conftestdata", "w")) == NULL) + exit(1); + + (void) sprintf(b, "%u", u); + (void) fprintf(f, "%d\n", strlen(b)); + (void) fclose(f); + exit(0); +}], sudo_cv_uid_t_len=`cat conftestdata`, sudo_cv_uid_t_len=10) ]) +rm -f conftestdata AC_MSG_RESULT($sudo_cv_uid_t_len) AC_DEFINE_UNQUOTED(MAX_UID_T_LEN, $sudo_cv_uid_t_len) ])