X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/16fe6d5906f6eff9da00cb861a7054a440d1f6eb..97017a809da405a36dfccf88d7bd13d26ca0e932:/doio.c?ds=sidebyside diff --git a/doio.c b/doio.c index 5c86537..0121633 100644 --- a/doio.c +++ b/doio.c @@ -1794,8 +1794,11 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) { struct semid_ds semds; union semun semun; - +#ifdef EXTRA_F_IN_SEMUN_BUF + semun.buff = &semds; +#else semun.buf = &semds; +#endif getinfo = (cmd == GETALL); if (Semctl(id, 0, IPC_STAT, semun) == -1) return -1; @@ -1850,7 +1853,11 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) #ifdef Semctl union semun unsemds; +#ifdef EXTRA_F_IN_SEMUN_BUF + unsemds.buff = (struct semid_ds *)a; +#else unsemds.buf = (struct semid_ds *)a; +#endif ret = Semctl(id, n, cmd, unsemds); #else Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); @@ -1919,6 +1926,10 @@ Perl_do_msgrcv(pTHX_ SV **mark, SV **sp) if (ret >= 0) { SvCUR_set(mstr, sizeof(long)+ret); *SvEND(mstr) = '\0'; +#ifndef INCOMPLETE_TAINTS + /* who knows who has been playing with this message? */ + SvTAINTED_on(mstr); +#endif } return ret; #else @@ -1987,6 +1998,10 @@ Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp) SvCUR_set(mstr, msize); *SvEND(mstr) = '\0'; SvSETMAGIC(mstr); +#ifndef INCOMPLETE_TAINTS + /* who knows who has been playing with this shared memory? */ + SvTAINTED_on(mstr); +#endif } else { I32 n;