Imported Upstream version 1.8.2
[debian/sudo] / plugins / sudoers / group_plugin.c
index bd5203af98dfc9ea0574f9941aa77cbdbb5658bb..a60a87dc7e848f9b6cef2c89954c6e7912c13b4f 100644 (file)
@@ -54,8 +54,8 @@
 
 #include "sudoers.h"
 
-#ifndef RTLD_LOCAL
-# define RTLD_LOCAL    0
+#ifndef RTLD_GLOBAL
+# define RTLD_GLOBAL   0
 #endif
 
 static void *group_handle;
@@ -77,7 +77,6 @@ group_plugin_load(char *plugin_info)
     /*
      * Fill in .so path and split out args (if any).
      */
-    args = strpbrk(plugin_info, " \t");
     if ((args = strpbrk(plugin_info, " \t")) != NULL) {
        len = snprintf(path, sizeof(path), "%s%.*s",
            (*plugin_info != '/') ? _PATH_SUDO_PLUGIN_DIR : "",
@@ -88,7 +87,7 @@ group_plugin_load(char *plugin_info)
            (*plugin_info != '/') ? _PATH_SUDO_PLUGIN_DIR : "", plugin_info);
     }
     if (len <= 0 || len >= sizeof(path)) {
-       warningx("%s%s: %s",
+       warningx(_("%s%s: %s"),
            (*plugin_info != '/') ? _PATH_SUDO_PLUGIN_DIR : "", plugin_info,
            strerror(ENAMETOOLONG));
        goto done;
@@ -100,28 +99,28 @@ group_plugin_load(char *plugin_info)
        goto done;
     }
     if (sb.st_uid != ROOT_UID) {
-       warningx("%s must be owned by uid %d", path, ROOT_UID);
+       warningx(_("%s must be owned by uid %d"), path, ROOT_UID);
        goto done;
     }
     if ((sb.st_mode & (S_IWGRP|S_IWOTH)) != 0) {
-       warningx("%s must be only be writable by owner", path);
+       warningx(_("%s must only be writable by owner"), path);
        goto done;
     }
 
     /* Open plugin and map in symbol. */
-    group_handle = dlopen(path, RTLD_LAZY|RTLD_LOCAL);
+    group_handle = dlopen(path, RTLD_LAZY|RTLD_GLOBAL);
     if (!group_handle) {
-       warningx("unable to dlopen %s: %s", path, dlerror());
+       warningx(_("unable to dlopen %s: %s"), path, dlerror());
        goto done;
     }
     group_plugin = dlsym(group_handle, "group_plugin");
     if (group_plugin == NULL) {
-       warningx("unable to find symbol \"group_plugin\" in %s", path);
+       warningx(_("unable to find symbol \"group_plugin\" in %s"), path);
        goto done;
     }
 
     if (GROUP_API_VERSION_GET_MAJOR(group_plugin->version) != GROUP_API_VERSION_MAJOR) {
-       warningx("%s: incompatible group plugin major version %d, expected %d",
+       warningx(_("%s: incompatible group plugin major version %d, expected %d"),
            path, GROUP_API_VERSION_GET_MAJOR(group_plugin->version),
            GROUP_API_VERSION_MAJOR);
        goto done;