Nmap Development mailing list archives

Re: 'class FingerMatch' vs 'struct FingerMatch'


From: Daniel Miller <bonsaiviking () gmail com>
Date: Tue, 7 Jul 2015 06:42:11 -0500

Gisle,

Thanks for the catch. This did not cause problems for me on VS 2013, so I
didn't catch it. Applied in r34857.

Dan

On Mon, Jul 6, 2015 at 2:00 PM, Gisle Vanem <gvanem () yahoo no> wrote:

I just tried to built todays Nmap using Visual Studio 2015
on Win 8.1. The only unresolved symbol at the link stage puzzled me:

  nmap.obj : error LNK2019: unresolved external symbol
  "class std::vector<struct FingerMatch,class std::allocator<struct
FingerMatch> >
  __cdecl load_fp_matches(void)"
  referenced in function "void __cdecl apply_delayed_options(void)"

So I started looking closer at the warnings. Like:
  FingerPrintResults.cc
   osscan.h(173): warning C4099: 'FingerMatch': type name first seen using
  'class' now seen using 'struct'

The are lots more warnings of that type.

The definition and implementation of this function doesn't match.
In FPengine.h:
  class FingerMatch;
   ...
  std::vector<FingerMatch> load_fp_matches();

FPmodel.cc:
  std::vector<FingerMatch> load_fp_matches() {
        std::vector<FingerMatch> matches;
  ...

Applying this patch here, fixed the link error:

--- SVN-Latest/FPEngine.h       2015-07-06 18:28:30 +0000
+++ ./FPEngine.h        2015-07-06 20:47:42 +0000
@@ -139,7 +139,7 @@

 class Target;
 class FingerPrintResultsIPv6;
-class FingerMatch;
+struct FingerMatch;


--- SVN-Latest/NmapOps.h        2015-07-06 18:28:31 +0000
+++ ./NmapOps.h 2015-07-06 20:50:29 +0000
@@ -133,7 +133,7 @@
 #include <map>

 class FingerPrintDB;
-class FingerMatch;
+struct FingerMatch;

 class NmapOps {
  public:

--
--gv
_______________________________________________
Sent through the dev mailing list
https://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/

_______________________________________________
Sent through the dev mailing list
https://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/

Current thread: