diff options
Diffstat (limited to 'lib-src')
| -rw-r--r-- | lib-src/emacsclient.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 49ebada768f..3ae33f72a18 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c | |||
| @@ -388,12 +388,14 @@ main (argc, argv) | |||
| 388 | that init_editfns uses to set the global Vuser_full_name. */ | 388 | that init_editfns uses to set the global Vuser_full_name. */ |
| 389 | 389 | ||
| 390 | char *user_name = (char *) getenv ("LOGNAME"); | 390 | char *user_name = (char *) getenv ("LOGNAME"); |
| 391 | |||
| 391 | if (!user_name) | 392 | if (!user_name) |
| 392 | user_name = (char *) getenv ("USER"); | 393 | user_name = (char *) getenv ("USER"); |
| 393 | 394 | ||
| 394 | if (user_name) | 395 | if (user_name) |
| 395 | { | 396 | { |
| 396 | struct passwd *pw = getpwnam (user_name); | 397 | struct passwd *pw = getpwnam (user_name); |
| 398 | |||
| 397 | if (pw && (pw->pw_uid != geteuid ())) | 399 | if (pw && (pw->pw_uid != geteuid ())) |
| 398 | { | 400 | { |
| 399 | /* We're running under su, apparently. */ | 401 | /* We're running under su, apparently. */ |
| @@ -412,6 +414,8 @@ main (argc, argv) | |||
| 412 | sock_status = socket_status (server.sun_path); | 414 | sock_status = socket_status (server.sun_path); |
| 413 | saved_errno = errno; | 415 | saved_errno = errno; |
| 414 | } | 416 | } |
| 417 | else | ||
| 418 | errno = saved_errno; | ||
| 415 | } | 419 | } |
| 416 | } | 420 | } |
| 417 | 421 | ||