diff --git a/cmdline.c b/cmdline.c index a4c91601..bafb9399 100644 --- a/cmdline.c +++ b/cmdline.c @@ -275,7 +275,7 @@ int cmdline_process_param(char *p, char *value, int need_save, Conf *conf) return ret; } - key = dupprintf("%c%.*s", type, q - value, value); + key = dupprintf("%c%.*s", type, (int)(q - value), value); val = dupstr(q+1); } else { /* @@ -307,7 +307,7 @@ int cmdline_process_param(char *p, char *value, int need_save, Conf *conf) return ret; } - host = dupprintf("%.*s", portp - value, value); + host = dupprintf("%.*s", (int)(portp - value), value); conf_set_str(conf, CONF_ssh_nc_host, host); conf_set_int(conf, CONF_ssh_nc_port, atoi(portp + 1)); sfree(host); diff --git a/misc.h b/misc.h index eff4a5e1..aa761999 100644 --- a/misc.h +++ b/misc.h @@ -26,7 +26,11 @@ char ctrlparse(char *s, char **next); char *dupstr(const char *s); char *dupcat(const char *s1, ...); -char *dupprintf(const char *fmt, ...); +char *dupprintf(const char *fmt, ...) +#ifdef __GNUC__ + __attribute__ ((format (printf, 1, 2))) +#endif + ; char *dupvprintf(const char *fmt, va_list ap); void burnstr(char *string); diff --git a/ssh.c b/ssh.c index 25a2e24b..0f318075 100644 --- a/ssh.c +++ b/ssh.c @@ -3292,7 +3292,7 @@ static void ssh_socket_log(Plug plug, int type, SockAddr addr, int port, if (sk_addr_needs_port(addr)) { msg = dupprintf("Connecting to %s port %d", addrbuf, port); } else { - msg = dupprintf("Connecting to %s", addrbuf, port); + msg = dupprintf("Connecting to %s", addrbuf); } } else { msg = dupprintf("Failed to connect to %s: %s", addrbuf, error_msg); @@ -5292,7 +5292,7 @@ static void ssh1_msg_port_open(Ssh ssh, struct Packet *pktin) ssh_pkt_getstring(pktin, &host, &hostsize); port = ssh_pkt_getuint32(pktin); - pf.dhost = dupprintf(".*s", hostsize, host); + pf.dhost = dupprintf("%.*s", hostsize, host); pf.dport = port; pfp = find234(ssh->rportfwds, &pf, NULL); diff --git a/unix/gtkwin.c b/unix/gtkwin.c index 88ce8b55..812e4faf 100644 --- a/unix/gtkwin.c +++ b/unix/gtkwin.c @@ -2901,7 +2901,7 @@ char *setup_fonts_ucs(struct gui_data *inst) for (i = 0; i < 2; i++) if (fonts[i]) unifont_destroy(fonts[i]); - return dupprintf("%s: unable to load wide font \"%s\"", fs->name); + return dupprintf("unable to load wide font \"%s\"", fs->name); } } else { fonts[2] = NULL; @@ -2917,8 +2917,7 @@ char *setup_fonts_ucs(struct gui_data *inst) for (i = 0; i < 3; i++) if (fonts[i]) unifont_destroy(fonts[i]); - return dupprintf("%s: unable to load wide bold font \"%s\"", - fs->name); + return dupprintf("unable to load wide bold font \"%s\"", fs->name); } } diff --git a/unix/uxplink.c b/unix/uxplink.c index 81356d36..7fbaa36a 100644 --- a/unix/uxplink.c +++ b/unix/uxplink.c @@ -204,7 +204,7 @@ static char *get_ttychar(struct termios *t, int index) cc_t c = t->c_cc[index]; #if defined(_POSIX_VDISABLE) if (c == _POSIX_VDISABLE) - return dupprintf(""); + return dupstr(""); #endif return dupprintf("^<%d>", c); } diff --git a/unix/uxpty.c b/unix/uxpty.c index 98f91793..54ba082c 100644 --- a/unix/uxpty.c +++ b/unix/uxpty.c @@ -938,7 +938,7 @@ static const char *pty_init(void *frontend, void **backend_handle, Conf *conf, *backend_handle = pty; - *realhost = dupprintf("\0"); + *realhost = dupstr(""); return NULL; }