mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Fix an assortment of dupprintf() format string bugs.
I've enabled gcc's format-string checking on dupprintf, by declaring it in misc.h to have the appropriate GNU-specific attribute. This pointed out a selection of warnings, which I've fixed. [originally from svn r10084]
This commit is contained in:
parent
bb78583ad2
commit
85d1e7608e
@ -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);
|
||||
|
6
misc.h
6
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);
|
||||
|
||||
|
4
ssh.c
4
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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user