[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
-static & Segmentation fault
From: |
Oleg V. Mirochnik |
Subject: |
-static & Segmentation fault |
Date: |
Wed, 16 Apr 2003 15:41:55 +0700 |
Hi,
Here is the script and its results for my PC.
I think it's libc problem.
This bug causes "Segmentation fault" for our program
and we spent a couple of days to catch it.
Thanks,
Oleg.
address@hidden tst_linux]$ uname -a
Linux linux-20 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686 i686 i386 GNU/Linux
address@hidden tst_linux]$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared
--enable-threads=posix --disable-checking --host=i386-redhat-linux
--with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
address@hidden tst_linux]$ cat doit
#!/bin/bash
rm -f tst.cc tst
cat << ___EOT > tst.cc
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pwd.h>
int main() {
char *a = (char *)malloc(4);
char *b = (char *)malloc(4);
wchar_t wc;
strcpy(a, "A=A");
strcpy(b, "B=B");
setlocale(LC_ALL, "");
putenv(a);
mbtowc(&wc, " ", 1);
putenv(b);
char *ptr= (char *)malloc(10);
getpwuid(0);
return 0;
}
___EOT
gcc -g -static -o tst tst.cc
for ev in `env | grep "^LC_" | sed "s/=.*$//"`; do
unset ${ev}
done
unset A
unset B
LANG=en_US
export LANG
ALFABET="a b c d e f g h i j k l m n o p q r s t u v w x y z"
for ev in ${ALFABET}; do
unset ${ev}
done
for ev in ${ALFABET}; do
export ${ev}=${ev}
echo " Number of Environment variables - `env | wc -l`"
./tst
done
for ev in ${ALFABET}; do
unset ${ev}
done
unset ev$$
if env | wc -l | grep "[02468]$" > /dev/null; then
echo Number of the Environment variables should be odd
export ev$$=a
fi
for loc in `cd /usr/lib/locale/; echo * C`; do
LANG=${loc}
export LANG
echo "Locale is ${LANG}"
./tst
done
address@hidden tst_linux]$ ./doit
Number of Environment variables - 44
Number of Environment variables - 45
./doit: line 54: 5792 Segmentation fault (core dumped) ./tst
Number of Environment variables - 46
Number of Environment variables - 47
./doit: line 54: 5800 Segmentation fault (core dumped) ./tst
Number of Environment variables - 48
Number of Environment variables - 49
./doit: line 54: 5808 Segmentation fault (core dumped) ./tst
Number of Environment variables - 50
Number of Environment variables - 51
./doit: line 54: 5816 Segmentation fault (core dumped) ./tst
Number of Environment variables - 52
Number of Environment variables - 53
./doit: line 54: 5824 Segmentation fault (core dumped) ./tst
Number of Environment variables - 54
Number of Environment variables - 55
./doit: line 54: 5832 Segmentation fault (core dumped) ./tst
Number of Environment variables - 56
Number of Environment variables - 57
./doit: line 54: 5840 Segmentation fault (core dumped) ./tst
Number of Environment variables - 58
Number of Environment variables - 59
./doit: line 54: 5848 Segmentation fault (core dumped) ./tst
Number of Environment variables - 60
Number of Environment variables - 61
./doit: line 54: 5856 Segmentation fault (core dumped) ./tst
Number of Environment variables - 62
Number of Environment variables - 63
./doit: line 54: 5864 Segmentation fault (core dumped) ./tst
Number of Environment variables - 64
Number of Environment variables - 65
./doit: line 54: 5872 Segmentation fault (core dumped) ./tst
Number of Environment variables - 66
Number of Environment variables - 67
./doit: line 54: 5880 Segmentation fault (core dumped) ./tst
Number of Environment variables - 68
Number of Environment variables - 69
./doit: line 54: 5888 Segmentation fault (core dumped) ./tst
Locale is en_AU
./doit: line 71: 5893 Segmentation fault (core dumped) ./tst
Locale is en_AU.utf8
Locale is en_BW
./doit: line 71: 5895 Segmentation fault (core dumped) ./tst
Locale is en_BW.utf8
Locale is en_CA
./doit: line 71: 5897 Segmentation fault (core dumped) ./tst
Locale is en_CA.utf8
Locale is en_DK
./doit: line 71: 5899 Segmentation fault (core dumped) ./tst
Locale is en_DK.utf8
Locale is en_GB
./doit: line 71: 5901 Segmentation fault (core dumped) ./tst
Locale is en_GB.iso885915
./doit: line 71: 5902 Segmentation fault (core dumped) ./tst
Locale is en_GB.utf8
Locale is en_HK
./doit: line 71: 5904 Segmentation fault (core dumped) ./tst
Locale is en_HK.utf8
Locale is en_IE
./doit: line 71: 5906 Segmentation fault (core dumped) ./tst
Locale is address@hidden
./doit: line 71: 5907 Segmentation fault (core dumped) ./tst
Locale is en_IE.utf8
Locale is address@hidden
Locale is en_IN
Locale is en_NZ
./doit: line 71: 5911 Segmentation fault (core dumped) ./tst
Locale is en_NZ.utf8
Locale is en_PH
./doit: line 71: 5913 Segmentation fault (core dumped) ./tst
Locale is en_PH.utf8
Locale is en_SG
./doit: line 71: 5915 Segmentation fault (core dumped) ./tst
Locale is en_SG.utf8
Locale is en_US
./doit: line 71: 5917 Segmentation fault (core dumped) ./tst
Locale is en_US.iso885915
./doit: line 71: 5918 Segmentation fault (core dumped) ./tst
Locale is en_US.utf8
Locale is en_ZA
./doit: line 71: 5920 Segmentation fault (core dumped) ./tst
Locale is en_ZA.utf8
Locale is en_ZW
./doit: line 71: 5922 Segmentation fault (core dumped) ./tst
Locale is en_ZW.utf8
Locale is locale-archive
Locale is ru_RU
./doit: line 71: 5925 Segmentation fault (core dumped) ./tst
Locale is ru_RU.koi8r
./doit: line 71: 5926 Segmentation fault (core dumped) ./tst
Locale is ru_RU.utf8
Locale is ru_UA
./doit: line 71: 5928 Segmentation fault (core dumped) ./tst
Locale is ru_UA.utf8
Locale is C
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- -static & Segmentation fault,
Oleg V. Mirochnik <=