diff options
author | David M. Syzdek <david@syzdek.net> | 2009-03-06 14:03:40 -0900 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2009-03-07 12:24:05 +0100 |
commit | f325df1b4578ec6fa0ef2a8b824f93439fcce816 (patch) | |
tree | 673ddc3219bb8dfc1469ba38fa56055b6e0cbeda /pp_sys.c | |
parent | 3f8c823a283afa6d9b3be3ef140cbd63676a82f9 (diff) | |
download | perl-f325df1b4578ec6fa0ef2a8b824f93439fcce816.tar.gz |
Fixing the cast for the result of (getgrent())->gr_gid
The gr_gid member of struct group is being cast as an int even if
system uses an unsigned int. This patch tests for the use of an
unsigned int for the gr_gid member and casts the value as appropiate.
Created with Arthur Corliss <corliss@corliss@digitalmages.com>.
Signed-off-by: David M. Syzdek <david@syzdek.net>
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -5328,7 +5328,11 @@ PP(pp_ggrent) PUSHs(sv); if (grent) { if (which == OP_GGRNAM) +#if Gid_t_sign <= 0 sv_setiv(sv, (IV)grent->gr_gid); +#else + sv_setuv(sv, (UV)grent->gr_gid); +#endif else sv_setpv(sv, grent->gr_name); } @@ -5344,7 +5348,11 @@ PP(pp_ggrent) PUSHs(sv_mortalcopy(&PL_sv_no)); #endif +#if Gid_t_sign <= 0 mPUSHi(grent->gr_gid); +#else + mPUSHu(grent->gr_gid); +#endif #if !(defined(_CRAYMPP) && defined(USE_REENTRANT_API)) /* In UNICOS/mk (_CRAYMPP) the multithreading |