]> granicus.if.org Git - sudo/commitdiff
Pass plugin path in the settings array.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 22 Oct 2014 19:13:00 +0000 (13:13 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 22 Oct 2014 19:13:00 +0000 (13:13 -0600)
doc/sudo_plugin.cat
doc/sudo_plugin.man.in
doc/sudo_plugin.mdoc.in
include/sudo_plugin.h
src/load_plugins.c
src/sudo.c
src/sudo_plugin_int.h

index 7276395a1649ad998d517bb5174da0d6223d58e6..4943db8337f1991584d54d31b4d364507e7cf514 100644 (file)
@@ -178,6 +178,11 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                        plugin was loaded from.  It may be used by a plugin to
                        locate support files.
 
+                 plugin_path=string
+                       The path name of plugin loaded by the s\bsu\bud\bdo\bo front end.
+                       The path name will be a fully-qualified unless the
+                       plugin was statically compiled into s\bsu\bud\bdo\bo.
+
                  preserve_environment=bool
                        Set to true if the user specified the -\b-E\bE flag,
                        indicating that the user wishes to preserve the
@@ -1462,6 +1467,9 @@ P\bPL\bLU\bUG\bGI\bIN\bN A\bAP\bPI\bI C\bCH\bHA\bAN\bNG\bGE\bEL\bLO\bOG\bG
            Previously, output from the command would be displayed to the
            terminal even if an output logging function returned 0.
 
+     Version 1.7 (sudo 1.8.12)
+           The _\bp_\bl_\bu_\bg_\bi_\bn_\b__\bp_\ba_\bt_\bh entry was added to the settings list.
+
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
      sudo.conf(4), sudoers(4), sudo(1m)
 
index 343b23ad4abb275f17d61702d41903e5a10795a2..c34b5754a18c8165abe56ac3d539ce274556077a 100644 (file)
@@ -304,6 +304,14 @@ This is the default directory set at compile time and may not
 correspond to the directory the running plugin was loaded from.
 It may be used by a plugin to locate support files.
 .TP 6n
+plugin_path=string
+The path name of plugin loaded by the
+\fBsudo\fR
+front end.
+The path name will be a fully-qualified unless the plugin was
+statically compiled into
+\fBsudo\fR.
+.TP 6n
 preserve_environment=bool
 Set to true if the user specified the
 \fB\-E\fR
@@ -2608,6 +2616,13 @@ function returned an error.
 The behavior when an I/O logging plugin returns 0 has changed.
 Previously, output from the command would be displayed to the
 terminal even if an output logging function returned 0.
+.TP 6n
+Version 1.7 (sudo 1.8.12)
+The
+\fIplugin_path\fR
+entry was added to the
+\fRsettings\fR
+list.
 .SH "SEE ALSO"
 sudo.conf(@mansectform@),
 sudoers(@mansectform@),
index 0a8e20919e1a74f975c15bbe2233f60bb26a964b..1641d50591a5100134d6651f4ffc221859f5982b 100644 (file)
@@ -275,6 +275,13 @@ front end.
 This is the default directory set at compile time and may not
 correspond to the directory the running plugin was loaded from.
 It may be used by a plugin to locate support files.
+.It plugin_path=string
+The path name of plugin loaded by the
+.Nm sudo
+front end.
+The path name will be a fully-qualified unless the plugin was
+statically compiled into
+.Nm sudo .
 .It preserve_environment=bool
 Set to true if the user specified the
 .Fl E
@@ -2279,6 +2286,12 @@ function returned an error.
 The behavior when an I/O logging plugin returns 0 has changed.
 Previously, output from the command would be displayed to the
 terminal even if an output logging function returned 0.
+.It Version 1.7 (sudo 1.8.12)
+The
+.Em plugin_path
+entry was added to the
+.Li settings
+list.
 .El
 .Sh SEE ALSO
 .Xr sudo.conf @mansectform@ ,
index b4300222b21bf19f87c65f0878d3a1daef39ea48..9d380c3c59c67fc85e7dda7d6b825040a450f5c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2013 Todd C. Miller <Todd.Miller@courtesan.com>
+ * Copyright (c) 2009-2014 Todd C. Miller <Todd.Miller@courtesan.com>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -19,7 +19,7 @@
 
 /* API version major/minor */
 #define SUDO_API_VERSION_MAJOR 1
-#define SUDO_API_VERSION_MINOR 6
+#define SUDO_API_VERSION_MINOR 7
 #define SUDO_API_MKVERSION(x, y) ((x << 16) | y)
 #define SUDO_API_VERSION SUDO_API_MKVERSION(SUDO_API_VERSION_MAJOR, SUDO_API_VERSION_MINOR)
 
index f25f1283016c816474c1d806e8488ebe04024a37..f12cf8157b0ca9fed3067869e0f4b7da2590433a 100644 (file)
@@ -237,6 +237,7 @@ sudo_load_plugin(struct plugin_container *policy_plugin,
        }
        if (handle != NULL) {
            policy_plugin->handle = handle;
+           policy_plugin->path = sudo_estrdup(path);
            policy_plugin->name = info->symbol_name;
            policy_plugin->options = info->options;
            policy_plugin->u.generic = plugin;
@@ -255,6 +256,7 @@ sudo_load_plugin(struct plugin_container *policy_plugin,
        if (handle != NULL) {
            container = sudo_ecalloc(1, sizeof(*container));
            container->handle = handle;
+           container->path = sudo_estrdup(path);
            container->name = info->symbol_name;
            container->options = info->options;
            container->u.generic = plugin;
index 85a889fd65658f433667e70fa5f4ecb839e9a042..ee6b2c2d0429f1c035ba4a5ecc319eeba9daa3c2 100644 (file)
@@ -1091,6 +1091,8 @@ format_plugin_settings(struct plugin_container *plugin,
     debug_decl(format_plugin_settings, SUDO_DEBUG_PCOMM)
 
     plugin_settings = sudo_emallocarray(plugin_settings_size, sizeof(char *));
+    plugin_settings[num_plugin_settings++] =
+       sudo_new_key_val("plugin_path", plugin->path);
     while (settings->name != NULL) {
         if (settings->value != NULL) {
             sudo_debug_printf(SUDO_DEBUG_INFO, "settings: %s=%s",
index 2e0fb1709f1508e1069eb6870dee3d625e496240..fb82b204d4495c3f4ea5b87fd4e077ed4c507e04 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013 Todd C. Miller <Todd.Miller@courtesan.com>
+ * Copyright (c) 2010-2014 Todd C. Miller <Todd.Miller@courtesan.com>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -83,6 +83,7 @@ struct io_plugin_1_1 {
 struct plugin_container {
     TAILQ_ENTRY(plugin_container) entries;
     const char *name;
+    const char *path;
     char * const *options;
     void *handle;
     union {