.
OBS-URL: https://build.opensuse.org/package/show/shells/ksh?expand=0&rev=85
This commit is contained in:
parent
fcd1020dfe
commit
bc3d72c166
@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
test $(ulimit -l) -lt 64 && exit 1
|
test $(ulimit -l) -lt 64 && exit 1
|
||||||
test $(ulimit -s) -lt 8192 && exit 1
|
test $(ulimit -s) -lt 8192 && exit 1
|
||||||
if test $(getconf LONG_BIT) -le 32 ; then
|
if test $(getconf LONG_BIT) -le 32 ; then
|
||||||
test $(ulimit -m) -lt 6852272 && exit 1
|
test $(ulimit -m) -lt 3145728 && exit 1
|
||||||
test $(ulimit -v) -lt 5010688 && exit 1
|
test $(ulimit -v) -lt 4194304 && exit 1
|
||||||
else
|
else
|
||||||
test $(ulimit -m) -lt 10471232 && exit 1
|
test $(ulimit -m) -lt 4194304 && exit 1
|
||||||
test $(ulimit -v) -lt 6683794 && exit 1
|
test $(ulimit -v) -lt 6683794 && exit 1
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 2 11:32:15 UTC 2012 - werner@suse.de
|
||||||
|
|
||||||
|
- Fix an off-by-one error which cause that the builtin ulimit may
|
||||||
|
fail (bnc#744355), patch from Li Bin.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Jan 24 18:42:48 UTC 2012 - werner@suse.de
|
Tue Jan 24 18:42:48 UTC 2012 - werner@suse.de
|
||||||
|
|
||||||
|
5
ksh.spec
5
ksh.spec
@ -76,6 +76,7 @@ Patch18: ksh93-jobs.dif
|
|||||||
Patch19: ksh93-reg.dif
|
Patch19: ksh93-reg.dif
|
||||||
Patch20: ksh93-aso.dif
|
Patch20: ksh93-aso.dif
|
||||||
Patch21: ksh93-vm.dif
|
Patch21: ksh93-vm.dif
|
||||||
|
Patch22: ksh93-limit-name-len.dif
|
||||||
Patch42: ksh-locale.patch
|
Patch42: ksh-locale.patch
|
||||||
%global use_suid_exe 0
|
%global use_suid_exe 0
|
||||||
%global use_locale 0
|
%global use_locale 0
|
||||||
@ -150,6 +151,7 @@ find share/ -type d -a -empty | xargs -r rm -vrf
|
|||||||
%patch19
|
%patch19
|
||||||
%patch20
|
%patch20
|
||||||
%patch21
|
%patch21
|
||||||
|
%patch22
|
||||||
find -type f -a -name Mamfile | \
|
find -type f -a -name Mamfile | \
|
||||||
xargs sed -ri '/exec.*-I-D/{s@(-I)(-D)([^0]*)(0[^[:blank:]]+)@\1\3@}'
|
xargs sed -ri '/exec.*-I-D/{s@(-I)(-D)([^0]*)(0[^[:blank:]]+)@\1\3@}'
|
||||||
|
|
||||||
@ -319,13 +321,10 @@ find -type f -a -name Mamfile | \
|
|||||||
cflags -std=gnu99 RPM_OPT_FLAGS
|
cflags -std=gnu99 RPM_OPT_FLAGS
|
||||||
cflags -fPIC RPM_OPT_FLAGS
|
cflags -fPIC RPM_OPT_FLAGS
|
||||||
cflags @$nobuiltin RPM_OPT_FLAGS
|
cflags @$nobuiltin RPM_OPT_FLAGS
|
||||||
cflags -fno-unwind-tables RPM_OPT_FLAGS
|
|
||||||
cflags -fno-strict-aliasing RPM_OPT_FLAGS
|
cflags -fno-strict-aliasing RPM_OPT_FLAGS
|
||||||
cflags -fno-zero-initialized-in-bss RPM_OPT_FLAGS
|
cflags -fno-zero-initialized-in-bss RPM_OPT_FLAGS
|
||||||
cflags -fno-delete-null-pointer-checks RPM_OPT_FLAGS
|
cflags -fno-delete-null-pointer-checks RPM_OPT_FLAGS
|
||||||
cflags -fno-asynchronous-unwind-tables RPM_OPT_FLAGS
|
|
||||||
cflags -fno-unsafe-loop-optimizations RPM_OPT_FLAGS
|
cflags -fno-unsafe-loop-optimizations RPM_OPT_FLAGS
|
||||||
cflags -fno-reorder-blocks-and-partition RPM_OPT_FLAGS
|
|
||||||
cflags -fsigned-bitfields RPM_OPT_FLAGS
|
cflags -fsigned-bitfields RPM_OPT_FLAGS
|
||||||
cflags -fsigned-chars RPM_OPT_FLAGS
|
cflags -fsigned-chars RPM_OPT_FLAGS
|
||||||
cflags -fsigned-zeros RPM_OPT_FLAGS
|
cflags -fsigned-zeros RPM_OPT_FLAGS
|
||||||
|
11
ksh93-limit-name-len.dif
Normal file
11
ksh93-limit-name-len.dif
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- src/cmd/ksh93/include/ulimit.h
|
||||||
|
+++ src/cmd/ksh93/include/ulimit.h 2012-02-02 11:30:00.242435132 +0000
|
||||||
|
@@ -157,7 +157,7 @@
|
||||||
|
|
||||||
|
typedef struct Limit_s
|
||||||
|
{
|
||||||
|
- const char name[8];
|
||||||
|
+ const char* name;
|
||||||
|
const char* description;
|
||||||
|
int index;
|
||||||
|
const char* conf;
|
20
ksh93.dif
20
ksh93.dif
@ -355,3 +355,23 @@
|
|||||||
chmodf = lchmod;
|
chmodf = lchmod;
|
||||||
goto commit;
|
goto commit;
|
||||||
#else
|
#else
|
||||||
|
--- src/cmd/ksh93/sh/xec.c
|
||||||
|
+++ src/cmd/ksh93/sh/xec.c 2012-01-26 12:07:46.463645375 +0000
|
||||||
|
@@ -922,7 +922,7 @@ int sh_exec(register const Shnode_t *t,
|
||||||
|
{
|
||||||
|
case TCOM:
|
||||||
|
{
|
||||||
|
- register struct argnod *argp;
|
||||||
|
+ volatile struct argnod *argp;
|
||||||
|
char *trap;
|
||||||
|
Namval_t *np, *nq, *last_table;
|
||||||
|
struct ionod *io;
|
||||||
|
@@ -1027,7 +1027,7 @@ int sh_exec(register const Shnode_t *t,
|
||||||
|
comn = com[argn-1];
|
||||||
|
}
|
||||||
|
io = t->tre.treio;
|
||||||
|
- if(shp->envlist = argp = t->com.comset)
|
||||||
|
+ if((shp->envlist = argp = t->com.comset))
|
||||||
|
{
|
||||||
|
if(argn==0 || (np && nv_isattr(np,(BLT_DCL|BLT_SPC))))
|
||||||
|
{
|
||||||
|
26
leak1.sh
26
leak1.sh
@ -6,30 +6,40 @@ getSampleInterval() { return 0; }
|
|||||||
typeset -ilu times=4000
|
typeset -ilu times=4000
|
||||||
typeset -ilu leak=0
|
typeset -ilu leak=0
|
||||||
|
|
||||||
|
typeset -a curstate=(0 0 0)
|
||||||
|
typeset -a oldstate=(0 0 0)
|
||||||
|
|
||||||
vm()
|
vm()
|
||||||
{
|
{
|
||||||
typeset size
|
typeset size
|
||||||
typeset key unit result=""
|
typeset key unit result=""
|
||||||
while read key size unit; do
|
while read key size unit; do
|
||||||
case "$key" in
|
case "$key" in
|
||||||
VmSize*) result=${result:+"$result:"}$size ;;
|
VmSize*) result=${result:+"$result "}$size ;;
|
||||||
VmRSS*) result=${result:+"$result:"}$size ;;
|
VmRSS*) result=${result:+"$result "}$size ;;
|
||||||
VmData*) result=${result:+"$result:"}$size ;;
|
VmData*) result=${result:+"$result "}$size ;;
|
||||||
esac
|
esac
|
||||||
done < /proc/$$/status
|
done < /proc/$$/status
|
||||||
echo $result
|
echo $result
|
||||||
}
|
}
|
||||||
|
|
||||||
curstate="XXXX:XXXX:XXXX"
|
lessequal()
|
||||||
oldstate=$(vm)
|
{
|
||||||
|
typeset -i ret=0
|
||||||
|
((${curstate[0]} > ${oldstate[0]})) && let ret=1
|
||||||
|
((${curstate[1]} > ${oldstate[1]})) && let ret=1
|
||||||
|
((${curstate[2]} > ${oldstate[2]})) && let ret=1
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
oldstate=($(vm))
|
||||||
while ((times-- > 0))
|
while ((times-- > 0))
|
||||||
do
|
do
|
||||||
interval=$(getSampleInterval)
|
interval=$(getSampleInterval)
|
||||||
|
|
||||||
curstate=$(vm)
|
curstate=($(vm))
|
||||||
[ "$curstate" != "$oldstate" ] && let leak++
|
lessequal || let leak++
|
||||||
oldstate="$curstate"
|
oldstate=(${curstate[@]})
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
47
leak2.sh
47
leak2.sh
@ -6,15 +6,18 @@ bla=234
|
|||||||
typeset -lui count=4000
|
typeset -lui count=4000
|
||||||
typeset -lui leak=0
|
typeset -lui leak=0
|
||||||
|
|
||||||
|
typeset -a curstate=(0 0 0)
|
||||||
|
typeset -a oldstate=(0 0 0)
|
||||||
|
|
||||||
vm()
|
vm()
|
||||||
{
|
{
|
||||||
typeset size
|
typeset size
|
||||||
typeset key unit result=""
|
typeset key unit result=""
|
||||||
while read key size unit; do
|
while read key size unit; do
|
||||||
case "$key" in
|
case "$key" in
|
||||||
VmSize*) result=${result:+"$result:"}$size ;;
|
VmSize*) result=${result:+"$result "}$size ;;
|
||||||
VmRSS*) result=${result:+"$result:"}$size ;;
|
VmRSS*) result=${result:+"$result "}$size ;;
|
||||||
VmData*) result=${result:+"$result:"}$size ;;
|
VmData*) result=${result:+"$result "}$size ;;
|
||||||
esac
|
esac
|
||||||
done < /proc/$$/status
|
done < /proc/$$/status
|
||||||
echo $result
|
echo $result
|
||||||
@ -22,23 +25,39 @@ vm()
|
|||||||
|
|
||||||
fusub()
|
fusub()
|
||||||
{
|
{
|
||||||
datun=`date +%S`
|
datum=`date +%S`
|
||||||
# datun=$(date +%S)
|
interval=$((10 - datum%10))
|
||||||
interval=$((10 - datun%10))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
curstate="XXXX:XXXX:XXXX"
|
fvsub()
|
||||||
oldstate=$(vm)
|
{
|
||||||
|
datum=$(date +%S)
|
||||||
|
interval=$((10 - datum%10))
|
||||||
|
}
|
||||||
|
|
||||||
|
lessequal()
|
||||||
|
{
|
||||||
|
typeset -i ret=0
|
||||||
|
((${curstate[0]} > ${oldstate[0]})) && let ret=1
|
||||||
|
((${curstate[1]} > ${oldstate[1]})) && let ret=1
|
||||||
|
((${curstate[2]} > ${oldstate[2]})) && let ret=1
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
oldstate=($(vm))
|
||||||
while ((count-- > 0))
|
while ((count-- > 0))
|
||||||
do
|
do
|
||||||
foo=$((foo+1))
|
foo=$((foo+1))
|
||||||
datum=`fusub`
|
|
||||||
# datum=$(fusub)
|
|
||||||
|
|
||||||
curstate=$(vm)
|
if ((count%2 == 0)) ; then
|
||||||
[ "$curstate" != "$oldstate" ] && let leak++
|
datum=`fusub`
|
||||||
oldstate="$curstate"
|
else
|
||||||
|
datum=$(fvsub)
|
||||||
|
fi
|
||||||
|
|
||||||
|
curstate=($(vm))
|
||||||
|
lessequal || let leak++
|
||||||
|
oldstate=(${curstate[@]})
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user