Re: [PATCH v2] test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Elia Pinto <gitter.spiros@xxxxxxxxx> writes:

> Compared to the first version, the code has been simplified, based on Junio's
> indications, introducing some redundancy in the setting of the glibc variables
> covered by the patch

I think we can even lose the separate case statement and write its
body inside if/then...fi.  The following shows the result of
shuffling the lines to do so.

>  	setup_malloc_check () {
> +		if _GLIBC_VERSION=$(getconf GNU_LIBC_VERSION 2>/dev/null) &&
> +		   _GLIBC_VERSION=${_GLIBC_VERSION#"glibc "} &&
> +		   expr 2.34 \<= "$_GLIBC_VERSION" >/dev/null

I am wondering if we want to make sure "getconf" returned a string
that begins with "glibc " before stripping that prefix.  Hopefully
such a paranoia is probably unneeded.

> +		then
> +			g=
> +			LD_PRELOAD="libc_malloc_debug.so.0"
> +			for t in \
> +				glibc.malloc.check=1 \
> +				glibc.malloc.perturb=165
> +			do
> +				g="${g##:}:$t"

Cute.  As this strips a constant, we do not need to be ##greedy
and using just a single # would suffice, right?

> +			done
> +			GLIBC_TUNABLES=$g
> +			export LD_PRELOAD GLIBC_TUNABLES
> +			;;
> +		fi
>  		MALLOC_CHECK_=3	MALLOC_PERTURB_=165
>  		export MALLOC_CHECK_ MALLOC_PERTURB_
>  	}
>  	teardown_malloc_check () {
>  		unset MALLOC_CHECK_ MALLOC_PERTURB_
> +		unset LD_PRELOAD GLIBC_TUNABLES
>  	}
>  fi

especially the teardown side unsets these unconditionally.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux