[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r113448: * filelock.c: Fix unlikely file descriptor
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] trunk r113448: * filelock.c: Fix unlikely file descriptor leaks. |
Date: |
Thu, 18 Jul 2013 10:24:30 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 113448
revision-id: address@hidden
parent: address@hidden
author: Paul Eggert <address@hidden>
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Thu 2013-07-18 03:24:26 -0700
message:
* filelock.c: Fix unlikely file descriptor leaks.
(get_boot_time_1): Rework to avoid using emacs_open.
This doesn't actually fix a leak, but is better anyway.
(read_lock_data): Use read, not emacs_read.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/filelock.c filelock.c-20091113204419-o5vbwnq5f7feedwu-179
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-07-18 09:55:00 +0000
+++ b/src/ChangeLog 2013-07-18 10:24:26 +0000
@@ -1,5 +1,10 @@
2013-07-18 Paul Eggert <address@hidden>
+ * filelock.c: Fix unlikely file descriptor leaks.
+ (get_boot_time_1): Rework to avoid using emacs_open.
+ This doesn't actually fix a leak, but is better anyway.
+ (read_lock_data): Use read, not emacs_read.
+
* doc.c: Fix minor memory and file descriptor leaks.
* doc.c (get_doc_string): Fix memory leak when doc file absent.
(get_doc_string, Fsnarf_documentation):
=== modified file 'src/filelock.c'
--- a/src/filelock.c 2013-07-14 23:12:42 +0000
+++ b/src/filelock.c 2013-07-18 10:24:26 +0000
@@ -257,18 +257,14 @@
get_boot_time_1 (const char *filename, bool newest)
{
struct utmp ut, *utp;
- int desc;
if (filename)
{
/* On some versions of IRIX, opening a nonexistent file name
is likely to crash in the utmp routines. */
- desc = emacs_open (filename, O_RDONLY, 0);
- if (desc < 0)
+ if (faccessat (AT_FDCWD, filename, R_OK, AT_EACCESS) != 0)
return;
- emacs_close (desc);
-
utmpname (filename);
}
@@ -512,7 +508,8 @@
int fd = emacs_open (lfname, O_RDONLY | O_BINARY | O_NOFOLLOW, 0);
if (0 <= fd)
{
- ptrdiff_t read_bytes = emacs_read (fd, lfinfo, MAX_LFINFO + 1);
+ /* Use read, not emacs_read, since FD isn't unwind-protected. */
+ ptrdiff_t read_bytes = read (fd, lfinfo, MAX_LFINFO + 1);
int read_errno = errno;
if (emacs_close (fd) != 0)
return -1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r113448: * filelock.c: Fix unlikely file descriptor leaks.,
Paul Eggert <=