diff --git a/PDP11/pdp11_ch.c b/PDP11/pdp11_ch.c index 03a88e6f..770524c4 100644 --- a/PDP11/pdp11_ch.c +++ b/PDP11/pdp11_ch.c @@ -411,7 +411,7 @@ t_stat ch_svc(UNIT *uptr) t_stat ch_attach (UNIT *uptr, CONST char *cptr) { - char linkinfo[256]; + char *linkinfo; t_stat r; if (address == -1) @@ -419,13 +419,16 @@ t_stat ch_attach (UNIT *uptr, CONST char *cptr) if (peer[0] == '\0') return sim_messagef (SCPE_2FARG, "Must set Chaosnet PEER \"SET CH PEER=host:port\"\n"); - linkinfo[sizeof (linkinfo) - 1] = '\0'; - snprintf (linkinfo, sizeof (linkinfo) - 1, "Buffer=%d,Line=%d,UDP,%s,PACKET,Connect=%s", + linkinfo = (char *)calloc (100 + strlen (cptr) + strlen (peer), sizeof (*linkinfo)); + if (linkinfo == NULL) + return SCPE_MEM; + sprintf (linkinfo, "Buffer=%d,Line=%d,UDP,%s,PACKET,Connect=%s", (int)sizeof (tx_buffer), 0, cptr, peer); r = tmxr_attach (&ch_tmxr, uptr, linkinfo); + free (linkinfo); if (r != SCPE_OK) { sim_debug (DBG_ERR, &ch_dev, "TMXR error opening master\n"); - return sim_messagef (r, "Error Opening: %s\n", peer); + return sim_messagef (r, "Error Opening connection to: %s, using: %s\n", peer, cptr); } sim_clock_coschedule (uptr, 1000); /* make sure polling starts */