bug-glibc
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]