From ab2b559bb5510413385bdf5e5398bcdfb293e40d Mon Sep 17 00:00:00 2001 From: Jarkko Hietaniemi Date: Tue, 11 Mar 2003 17:43:10 +0000 Subject: [PATCH] Uid_t and Gid_t can easily be shorts and one cannot pull shorts off the va_args, int is the shortest (ahem). p4raw-id: //depot/perl@18919 --- reentr.c | 8 ++++++++ reentr.pl | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/reentr.c b/reentr.c index 8b655da..8dddbe7 100644 --- a/reentr.c +++ b/reentr.c @@ -368,7 +368,11 @@ Perl_reentrant_retry(const char *f, ...) p0 = va_arg(ap, void *); retptr = getgrnam(p0); break; case OP_GGRGID: +#if Gid_t_size < INTSIZE + gid = (Gid_t)va_arg(ap, int); +#else gid = va_arg(ap, Gid_t); +#endif retptr = getgrgid(gid); break; case OP_GGRENT: retptr = getgrent(); break; @@ -431,7 +435,11 @@ Perl_reentrant_retry(const char *f, ...) p0 = va_arg(ap, void *); retptr = getpwnam(p0); break; case OP_GPWUID: +#if Uid_t_size < INTSIZE + uid = (Uid_t)va_arg(ap, int); +#else uid = va_arg(ap, Uid_t); +#endif retptr = getpwuid(uid); break; case OP_GPWENT: retptr = getpwent(); break; diff --git a/reentr.pl b/reentr.pl index ee94c8d..4f9619e 100644 --- a/reentr.pl +++ b/reentr.pl @@ -851,7 +851,11 @@ Perl_reentrant_retry(const char *f, ...) p0 = va_arg(ap, void *); retptr = getgrnam(p0); break; case OP_GGRGID: +#if Gid_t_size < INTSIZE + gid = (Gid_t)va_arg(ap, int); +#else gid = va_arg(ap, Gid_t); +#endif retptr = getgrgid(gid); break; case OP_GGRENT: retptr = getgrent(); break; @@ -914,7 +918,11 @@ Perl_reentrant_retry(const char *f, ...) p0 = va_arg(ap, void *); retptr = getpwnam(p0); break; case OP_GPWUID: +#if Uid_t_size < INTSIZE + uid = (Uid_t)va_arg(ap, int); +#else uid = va_arg(ap, Uid_t); +#endif retptr = getpwuid(uid); break; case OP_GPWENT: retptr = getpwent(); break; -- 2.7.4