emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 86c3cd9: Avoid compiler warning in w32proc.c


From: Eli Zaretskii
Subject: [Emacs-diffs] master 86c3cd9: Avoid compiler warning in w32proc.c
Date: Sat, 23 Mar 2019 04:31:58 -0400 (EDT)

branch: master
commit 86c3cd99bff27e35e25dec0ee3f0dc4536b171ea
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Avoid compiler warning in w32proc.c
    
    * src/w32proc.c (w32_executable_type): Avoid compiler warnings
    about potential NULL pointer dereferencing.
---
 src/w32proc.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/w32proc.c b/src/w32proc.c
index 8e878e6..75e345a 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -1776,22 +1776,27 @@ w32_executable_type (char * filename,
           if (data_dir)
             {
               /* Look for Cygwin DLL in the DLL import list. */
-              IMAGE_DATA_DIRECTORY import_dir =
-                data_dir[IMAGE_DIRECTORY_ENTRY_IMPORT];
+              IMAGE_DATA_DIRECTORY import_dir
+                = data_dir[IMAGE_DIRECTORY_ENTRY_IMPORT];
 
              /* Import directory can be missing in .NET DLLs.  */
              if (import_dir.VirtualAddress != 0)
                {
+                 IMAGE_SECTION_HEADER *section
+                   = rva_to_section (import_dir.VirtualAddress, nt_header);
+                 if (!section)
+                   emacs_abort ();
+
                  IMAGE_IMPORT_DESCRIPTOR * imports =
-                   RVA_TO_PTR (import_dir.VirtualAddress,
-                               rva_to_section (import_dir.VirtualAddress,
-                                               nt_header),
+                   RVA_TO_PTR (import_dir.VirtualAddress, section,
                                executable);
 
                  for ( ; imports->Name; imports++)
                    {
-                     IMAGE_SECTION_HEADER * section =
-                       rva_to_section (imports->Name, nt_header);
+                     section = rva_to_section (imports->Name, nt_header);
+                     if (!section)
+                       emacs_abort ();
+
                      char * dllname = RVA_TO_PTR (imports->Name, section,
                                                   executable);
 



reply via email to

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