]> granicus.if.org Git - sudo/commitdiff
now use a temp file for determining max len of uid_t in string form.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 6 Dec 1995 22:26:22 +0000 (22:26 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 6 Dec 1995 22:26:22 +0000 (22:26 +0000)
the old hacky way broke on netbsd

aclocal.m4

index 74489159b8d3e4a4f079d1800afed00146e2a183..63c0d0572fb15bfa2a6b2015c09bd78925c3c4d1 100644 (file)
@@ -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 <stdio.h>
 #include <pwd.h>
 #include <sys/types.h>
 #include <sys/param.h>
 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)
 ])