gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r23083 - Extractor/src/main


From: gnunet
Subject: [GNUnet-SVN] r23083 - Extractor/src/main
Date: Sat, 4 Aug 2012 01:12:03 +0200

Author: grothoff
Date: 2012-08-04 01:12:03 +0200 (Sat, 04 Aug 2012)
New Revision: 23083

Modified:
   Extractor/src/main/extractor_plugpath.c
Log:
make lib finding more robust

Modified: Extractor/src/main/extractor_plugpath.c
===================================================================
--- Extractor/src/main/extractor_plugpath.c     2012-08-03 23:08:22 UTC (rev 
23082)
+++ Extractor/src/main/extractor_plugpath.c     2012-08-03 23:12:03 UTC (rev 
23083)
@@ -504,6 +504,7 @@
   const char *sym_name;
   char *sym;
   char *dot;
+  size_t dlen;
 
   if (NULL != sc->path)
     return;
@@ -513,8 +514,10 @@
     {
       if ('.' == ent->d_name[0])
        continue;
-      if ( (NULL == strstr (ent->d_name, ".so")) &&
-          (NULL == strstr (ent->d_name, ".dll")) )
+      dlen = strlen (ent->d_name);
+      if ( (dlen < 4) ||
+          ( (0 != strcmp (&ent->d_name[dlen-3], ".so")) &&
+            (0 != strcasecmp (&ent->d_name[dlen-4], ".dll")) ) )
        continue; /* only load '.so' and '.dll' */
       if (NULL == (sym_name = strrchr (ent->d_name, '_')))
        continue;       
@@ -590,6 +593,7 @@
   const char *sym_name;
   char *sym;
   char *dot;
+  size_t dlen;
 
   if (NULL == (dir = opendir (path)))
     return;
@@ -597,8 +601,10 @@
     {
       if (ent->d_name[0] == '.')
        continue;
-      if ( (NULL == strstr (ent->d_name, ".so")) &&
-          (NULL == strstr (ent->d_name, ".dll")) )
+      dlen = strlen (ent->d_name);
+      if ( (dlen < 4) ||
+          ( (0 != strcmp (&ent->d_name[dlen-3], ".so")) &&
+            (0 != strcasecmp (&ent->d_name[dlen-4], ".dll")) ) )
        continue; /* only load '.so' and '.dll' */
       if (NULL == (sym_name = strrchr (ent->d_name, '_')))
        continue;




reply via email to

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