Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 13542) +++ trunk/src/main.c (revision 13543) @@ -269,6 +269,7 @@ pcb_funchash_uninit(); free(hid_argv_orig); conf_uninit(); + pcb_io_uninit(); } static int arg_match(const char *in, const char *shrt, const char *lng) Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 13542) +++ trunk/src/plug_io.c (revision 13543) @@ -1005,3 +1005,9 @@ } } } + +void pcb_io_uninit(void) +{ + if (conf_core.rc.path.design != NULL) + free((char *)(*((CFT_STRING *)(&conf_core.rc.path.design)))); +} Index: trunk/src/plug_io.h =================================================================== --- trunk/src/plug_io.h (revision 13542) +++ trunk/src/plug_io.h (revision 13543) @@ -181,4 +181,6 @@ } pcb_find_io_t; int pcb_find_io(pcb_find_io_t *available, int avail_len, pcb_plug_iot_t typ, int is_wr, const char *fmt); +void pcb_io_uninit(void); + #endif