diff --git a/eggdrop-basic.conf b/eggdrop-basic.conf index d14753d0e..ab54423f7 100755 --- a/eggdrop-basic.conf +++ b/eggdrop-basic.conf @@ -300,9 +300,8 @@ set ssl-capath "/etc/ssl/" ## Eggdrop, things change. ## This path specifies the path were Eggdrop should look for its modules. -## If you run the bot from the compilation directory, you will want to set -## this to "". If you use 'make install' (like all good kiddies do ;), this -## is a fine default. Otherwise, use your head :) +## If you use 'make install' (like all good kiddies do ;), this is a fine +## default. Otherwise, use your head :) set mod-path "modules/" #### CHANNELS MODULE #### diff --git a/eggdrop.conf b/eggdrop.conf index 86ac99e64..918c69988 100755 --- a/eggdrop.conf +++ b/eggdrop.conf @@ -605,9 +605,8 @@ die "Please make sure you edit your config file completely." # Eggdrop, things change. # This path specifies the path were Eggdrop should look for its modules. -# If you run the bot from the compilation directory, you will want to set -# this to "". If you use 'make install' (like all good kiddies do ;), this -# is a fine default. Otherwise, use your head :) +# If you use 'make install' (like all good kiddies do ;), this is a fine +# default. Otherwise, use your head :) set mod-path "modules/" diff --git a/src/modules.c b/src/modules.c index 61ae64716..0b12f31d4 100644 --- a/src/modules.c +++ b/src/modules.c @@ -23,6 +23,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include "main.h" #include "modules.h" @@ -698,6 +699,7 @@ int module_register(char *name, Function *funcs, int major, int minor) const char *module_load(char *name) { + size_t len; module_entry *p; char *e; Function f; @@ -706,7 +708,7 @@ const char *module_load(char *name) #endif #ifndef STATIC - char workbuf[1024]; + char workbuf[PATH_MAX]; # ifdef MOD_USE_SHL shl_t hand; # endif @@ -732,11 +734,14 @@ const char *module_load(char *name) #ifndef STATIC if (moddir[0] != '/') { - if (getcwd(workbuf, 1024) == NULL) + if (getcwd(workbuf, sizeof workbuf) == NULL) { + debug1("modules: getcwd(): %s\n", strerror(errno)); return MOD_BADCWD; - sprintf(&(workbuf[strlen(workbuf)]), "/%s%s." EGG_MOD_EXT, moddir, name); + } + len = strlen(workbuf); + snprintf(workbuf + len, (sizeof workbuf) - len, "/%s%s." EGG_MOD_EXT, moddir, name); } else { - sprintf(workbuf, "%s%s." EGG_MOD_EXT, moddir, name); + snprintf(workbuf, sizeof workbuf, "%s%s." EGG_MOD_EXT, moddir, name); } # ifdef MOD_USE_SHL