From: Jarkko Hietaniemi Date: Tue, 11 Mar 2003 17:43:10 +0000 (+0000) Subject: Uid_t and Gid_t can easily be shorts and one cannot X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ab2b559bb5510413385bdf5e5398bcdfb293e40d;p=p5sagit%2Fp5-mst-13.2.git 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 --- 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;