merged
thanks
-steve
On 05/28/2010 12:56 PM, Andreas Florath wrote:
> Hello!
>
> Just stumble over the function 'decode_mode()' which IMHO has at least
> one problem with a buffer overflow.
>
> The static function 'decode_mode()' is used by the static function
> 'dump_subsys_config()' which is is turn used by the static function
> 'dump_full_config()' which is never used.
>
> Are these functions used by someone using some magic? I did not find
> any reference and even the flag LOGSYS_DEBUG, which prevents them from
> compiling, does not exist at some other point.
>
> If these functions are really not used, please remove them (because at
> least one of them has a buffer overflow). Patch against 1.2.3
> is attached.
>
> If there is a need for these functions, I'll send a patch to fix
> the 'decode_mode()' function.
>
> Kind regards
>
> Andreas Florath
>
> Signed-off-by: Andreas Florath<gnu4u at flonatel dot org>
> ---
> diff -ru corosync-1.2.3/exec/logsys.c corosync-1.2.3-patched/exec/logsys.c
> --- corosync-1.2.3/exec/logsys.c 2010-05-19 15:59:17.000000000 +0200
> +++ corosync-1.2.3-patched/exec/logsys.c 2010-05-28 21:13:02.000000000
> +0200
> @@ -217,87 +217,6 @@
> /* forward declarations */
> static void logsys_close_logfile(int subsysid);
>
> -#ifdef LOGSYS_DEBUG
> -static char *decode_mode(int subsysid, char *buf, size_t buflen)
> -{
> - memset(buf, 0, buflen);
> -
> - if (logsys_loggers[subsysid].mode& LOGSYS_MODE_OUTPUT_FILE)
> - snprintf(buf+strlen(buf), buflen, "FILE,");
> -
> - if (logsys_loggers[subsysid].mode& LOGSYS_MODE_OUTPUT_STDERR)
> - snprintf(buf+strlen(buf), buflen, "STDERR,");
> -
> - if (logsys_loggers[subsysid].mode& LOGSYS_MODE_OUTPUT_SYSLOG)
> - snprintf(buf+strlen(buf), buflen, "SYSLOG,");
> -
> - if (subsysid == LOGSYS_MAX_SUBSYS_COUNT) {
> - if (logsys_loggers[subsysid].mode& LOGSYS_MODE_FORK)
> - snprintf(buf+strlen(buf), buflen, "FORK,");
> -
> - if (logsys_loggers[subsysid].mode& LOGSYS_MODE_THREADED)
> - snprintf(buf+strlen(buf), buflen, "THREADED,");
> - }
> -
> - memset(buf+strlen(buf)-1,0,1);
> -
> - return buf;
> -}
> -
> -static const char *decode_debug(int subsysid)
> -{
> - if (logsys_loggers[subsysid].debug)
> - return "on";
> -
> - return "off";
> -}
> -
> -static const char *decode_status(int subsysid)
> -{
> - if (!logsys_loggers[subsysid].init_status)
> - return "INIT_DONE";
> -
> - return "NEEDS_INIT";
> -}
> -
> -static void dump_subsys_config(int subsysid)
> -{
> - char modebuf[1024];
> -
> - fprintf(stderr,
> - "ID: %d\n"
> - "subsys: %s\n"
> - "logfile: %s\n"
> - "logfile_fp: %p\n"
> - "mode: %s\n"
> - "debug: %s\n"
> - "syslog_fac: %s\n"
> - "syslog_pri: %s\n"
> - "logfile_pri: %s\n"
> - "init_status: %s\n",
> - subsysid,
> - logsys_loggers[subsysid].subsys,
> - logsys_loggers[subsysid].logfile,
> - logsys_loggers[subsysid].logfile_fp,
> - decode_mode(subsysid, modebuf, sizeof(modebuf)),
> - decode_debug(subsysid),
> -
> logsys_facility_name_get(logsys_loggers[subsysid].syslog_facility),
> -
> logsys_priority_name_get(logsys_loggers[subsysid].syslog_priority),
> -
> logsys_priority_name_get(logsys_loggers[subsysid].logfile_priority),
> - decode_status(subsysid));
> -}
> -
> -static void dump_full_config(void)
> -{
> - int i;
> -
> - for (i = 0; i<= LOGSYS_MAX_SUBSYS_COUNT; i++) {
> - if (strlen(logsys_loggers[i].subsys)> 0)
> - dump_subsys_config(i);
> - }
> -}
> -#endif
> -
> static uint32_t circular_memory_map (void **buf, size_t bytes)
> {
> void *addr_orig;
> _______________________________________________
> Openais mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/openais
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais