[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master eedff18 1/2: Avoid segfaults on MS-Windows when inv
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master eedff18 1/2: Avoid segfaults on MS-Windows when invoking subprocesses (Bug#20264) |
Date: |
Mon, 06 Apr 2015 10:28:37 +0000 |
branch: master
commit eedff18424041188c843fb8e183b686df6c217f2
Author: Koichi Arakawa <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Avoid segfaults on MS-Windows when invoking subprocesses (Bug#20264)
src/w32proc.c (w32_executable_type): Look for the DLL name in the
correct section. This avoids segfaults with some executables.
---
src/ChangeLog | 6 ++++++
src/w32proc.c | 21 +++++++++++----------
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/ChangeLog b/src/ChangeLog
index 1c3f933..33d0b9b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2015-04-06 Koichi Arakawa <address@hidden> (tiny change)
+
+ * w32proc.c (w32_executable_type): Look for the DLL name in the
+ correct section. This avoids segfaults with some executables.
+ (Bug#20264)
+
2015-04-04 Jan Djärv <address@hidden>
* xselect.c (x_reply_selection_request)
diff --git a/src/w32proc.c b/src/w32proc.c
index 7d982f8..9f699cc 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -1613,24 +1613,25 @@ w32_executable_type (char * filename,
#endif
if (data_dir)
{
- /* Look for cygwin.dll in DLL import list. */
+ /* Look for Cygwin DLL in the DLL import list. */
IMAGE_DATA_DIRECTORY import_dir =
data_dir[IMAGE_DIRECTORY_ENTRY_IMPORT];
- IMAGE_IMPORT_DESCRIPTOR * imports;
- IMAGE_SECTION_HEADER * section;
-
- section = rva_to_section (import_dir.VirtualAddress, nt_header);
- imports = RVA_TO_PTR (import_dir.VirtualAddress, section,
- executable);
+ IMAGE_IMPORT_DESCRIPTOR * imports =
+ RVA_TO_PTR (import_dir.VirtualAddress,
+ rva_to_section (import_dir.VirtualAddress,
+ nt_header),
+ executable);
for ( ; imports->Name; imports++)
{
+ IMAGE_SECTION_HEADER * section =
+ rva_to_section (imports->Name, nt_header);
char * dllname = RVA_TO_PTR (imports->Name, section,
executable);
- /* The exact name of the cygwin dll has changed with
- various releases, but hopefully this will be reasonably
- future proof. */
+ /* The exact name of the Cygwin DLL has changed with
+ various releases, but hopefully this will be
+ reasonably future-proof. */
if (strncmp (dllname, "cygwin", 6) == 0)
{
*is_cygnus_app = TRUE;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master eedff18 1/2: Avoid segfaults on MS-Windows when invoking subprocesses (Bug#20264),
Eli Zaretskii <=