This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

getlogin() fails on glibc-2.12 and above


Hi all,

I am trying to get a simple C program running on RHEL6?x86_64?(gcc
4.4.4) and glibc (v2.12). However, I am getting a Floating Point
Exception (which is very weird for a simple API call into the library
and linking statically).

Here is the exact program -

#include<stdio.h>
#include<unistd.h>

int main(void){

      char* name;
? ?   ?name = getlogin();
      printf("name = %s\n", name);

  return;
}

Compiled using this command -
gcc -static -g getlogintest.c -o getlogintest

This works fine for an older version of glibc (I used v2.3.4). I
debugged a bit and found that the call stack has changed for newer
implementations of glibc. (Earlier?getlogin()?used to call
ttyname_r(), and now it calls?__getlogin_r_loginuid()?and so on). I
tried using getlogin_r() too, but fails similarly.


Here is the?bt?-
(gdb) s

Program received signal SIGFPE, Arithmetic exception.
0x000000304f277d63 in _int_free () from /lib64/libc.so.6
(gdb) bt
#0 ?0x000000304f277d63 in _int_free () from /lib64/libc.so.6
#1 ?0x000000304f265e3d in fclose@@GLIBC_2.2.5 () from /lib64/libc.so.6
#2 ?0x00007ffff7dc9f2a in _nss_files_getpwuid_r () from /lib64/libnss_files.so.2
#3 ?0x00000000004366fd in getpwuid_r ()
#4 ?0x000000000040c962 in __getlogin_r_loginuid ()
#5 ?0x000000000040c673 in getlogin ()
#6 ?0x0000000000400449 in main () at getlogintest.c:9

Any idea?


Thanks,
-Pranav


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]