--- freem/src/global_dispatch.c 2025/03/09 19:14:25 1.4 +++ freem/src/global_dispatch.c 2025/04/13 04:22:43 1.10 @@ -1,5 +1,5 @@ /* - * $Id: global_dispatch.c,v 1.4 2025/03/09 19:14:25 snw Exp $ + * $Id: global_dispatch.c,v 1.10 2025/04/13 04:22:43 snw Exp $ * global handler dispatch module * * @@ -24,6 +24,24 @@ * along with FreeM. If not, see . * * $Log: global_dispatch.c,v $ + * Revision 1.10 2025/04/13 04:22:43 snw + * Fix snprintf calls + * + * Revision 1.9 2025/04/10 01:24:38 snw + * Remove C++ style comments + * + * Revision 1.8 2025/04/09 19:52:02 snw + * Eliminate as many warnings as possible while building with -Wall + * + * Revision 1.7 2025/04/09 15:16:50 snw + * Fix buffer overruns in mref_to_external and ssvn.c + * + * Revision 1.6 2025/03/29 16:50:42 snw + * Back to cvs-current as version for development; temp fix for double-free issue in global_dispatch + * + * Revision 1.5 2025/03/24 04:13:11 snw + * Replace action macro dat with fra_dat to avoid symbol conflict on OS/2 + * * Revision 1.4 2025/03/09 19:14:25 snw * First phase of REUSE compliance and header reformat * @@ -53,17 +71,9 @@ void (*gbl_s)(short, char *, char *); void global_set_engine(char ns, char *engine) { - - - if ((strcmp (engine, "BUILTIN") != 0) && (strcmp (engine, "BERKELEYDB") != 0)) { - - if (strcmp (engine, "NICKELBACK") == 0) { - char *j; - printf ("\r\nERROR: please go burn your CD collection in fire. Here, have a segfault...\r\n"); + + if (strcmp (engine, "BUILTIN") != 0) { - j[2] = '\201'; - } - printf ("\r\nERROR: '%s' is not a valid global storage engine\r\n", engine); merr_raise (M38); @@ -113,8 +123,6 @@ void global_set_engine(char ns, char *en } - //ssvn_job_update (); - merr_raise (OK); return; @@ -192,7 +200,7 @@ void global (short action, char *key, ch name[i] = '\0'; snprintf (mapk_buf, STRLEN - 1, "^$SYSTEM\202MAPPINGS\202GLOBAL\202%s\201", name); - global (get_sym, mapk_buf, mapd_buf); + symtab_shm (get_sym, mapk_buf, mapd_buf); stcnv_m2c (mapd_buf); @@ -340,7 +348,7 @@ void global (short action, char *key, ch /* grab the rest of the gvn */ subprt = nssave + i + 1; - snprintf (r->name, 255, "^%s", subprt); + sprintf (r->name, "^%s", subprt); /* get a fully-formed key */ key = mref_to_internal (r); @@ -424,7 +432,7 @@ void global (short action, char *key, ch case get_sym: sprintf (an, "GET"); break; - case dat: + case fra_dat: sprintf (an, "DATA"); break; case fra_order: @@ -466,7 +474,7 @@ void global (short action, char *key, ch evt_enqueue (ev_id, EVT_CLS_TRIGGER, 0); free (k_buf); - free (d_buf); + /* free (d_buf); */ } free (old_value);