Add lots of missing 'static' keywords.

A trawl through the code with -Wmissing-prototypes and
-Wmissing-variable-declarations turned up a lot of things that should
have been internal to a particular source file, but were accidentally
global. Keep the namespace clean by making them all static.

(Also, while I'm here, a couple of them were missing a 'const': the
ONE and ZERO arrays in sshcrcda.c, and EMPTY_WINDOW_TITLE in
terminal.c.)
This commit is contained in:
Simon Tatham 2020-01-29 06:22:01 +00:00
Родитель 787181bb12
Коммит 8d747d8029
21 изменённых файлов: 46 добавлений и 47 удалений

Просмотреть файл

@ -14,10 +14,10 @@ struct callback {
void *ctx; void *ctx;
}; };
struct callback *cbcurr = NULL, *cbhead = NULL, *cbtail = NULL; static struct callback *cbcurr = NULL, *cbhead = NULL, *cbtail = NULL;
toplevel_callback_notify_fn_t notify_frontend = NULL; static toplevel_callback_notify_fn_t notify_frontend = NULL;
void *notify_ctx = NULL; static void *notify_ctx = NULL;
void request_callback_notifications(toplevel_callback_notify_fn_t fn, void request_callback_notifications(toplevel_callback_notify_fn_t fn,
void *ctx) void *ctx)

Просмотреть файл

@ -102,7 +102,7 @@ typedef struct {
#define SHAPE_FIRST 0x621 #define SHAPE_FIRST 0x621
#define SHAPE_LAST (SHAPE_FIRST + lenof(shapetypes) - 1) #define SHAPE_LAST (SHAPE_FIRST + lenof(shapetypes) - 1)
const shape_node shapetypes[] = { static const shape_node shapetypes[] = {
/* index, Typ, Iso, Ligature Index*/ /* index, Typ, Iso, Ligature Index*/
/* 621 */ {SU, 0xFE80}, /* 621 */ {SU, 0xFE80},
/* 622 */ {SR, 0xFE81}, /* 622 */ {SR, 0xFE81},

Просмотреть файл

@ -878,7 +878,7 @@ unsigned mp_eq_integer(mp_int *x, uintmax_t n)
return 1 ^ normalise_to_1(diff); /* return 1 if diff _is_ zero */ return 1 ^ normalise_to_1(diff); /* return 1 if diff _is_ zero */
} }
void mp_neg_into(mp_int *r, mp_int *a) static void mp_neg_into(mp_int *r, mp_int *a)
{ {
mp_int zero; mp_int zero;
zero.nw = 0; zero.nw = 0;

Просмотреть файл

@ -732,7 +732,7 @@ static int pfr_cmp(void *av, void *bv)
return 0; return 0;
} }
void pfr_free(PortFwdRecord *pfr) static void pfr_free(PortFwdRecord *pfr)
{ {
/* Dispose of any listening socket. */ /* Dispose of any listening socket. */
if (pfr->local) if (pfr->local)

2
ssh.c
Просмотреть файл

@ -557,7 +557,7 @@ void ssh_user_close(Ssh *ssh, const char *fmt, ...)
} }
} }
void ssh_deferred_abort_callback(void *vctx) static void ssh_deferred_abort_callback(void *vctx)
{ {
Ssh *ssh = (Ssh *)vctx; Ssh *ssh = (Ssh *)vctx;
char *msg = ssh->deferred_abort_message; char *msg = ssh->deferred_abort_message;

Просмотреть файл

@ -123,7 +123,7 @@ struct aes_extra {
pid, 16, bits, bits/8, flags, name HW_NAME_SUFFIX, \ pid, 16, bits, bits/8, flags, name HW_NAME_SUFFIX, \
NULL, NULL }; \ NULL, NULL }; \
\ \
const struct aes_extra extra_##cid = { \ static const struct aes_extra extra_##cid = { \
&ssh_##cid##_sw, &ssh_##cid##_hw }; \ &ssh_##cid##_sw, &ssh_##cid##_hw }; \
\ \
const ssh_cipheralg ssh_##cid = { \ const ssh_cipheralg ssh_##cid = { \

Просмотреть файл

@ -44,8 +44,8 @@
#define CMP(a, b) (memcmp(a, b, SSH_BLOCKSIZE)) #define CMP(a, b) (memcmp(a, b, SSH_BLOCKSIZE))
uint8_t ONE[4] = { 1, 0, 0, 0 }; static const uint8_t ONE[4] = { 1, 0, 0, 0 };
uint8_t ZERO[4] = { 0, 0, 0, 0 }; static const uint8_t ZERO[4] = { 0, 0, 0, 0 };
struct crcda_ctx { struct crcda_ctx {
uint16_t *h; uint16_t *h;

Просмотреть файл

@ -430,7 +430,7 @@ static inline uint64_t bitsel(
return ret; return ret;
} }
void des_key_setup(uint64_t key, des_keysched *sched) static void des_key_setup(uint64_t key, des_keysched *sched)
{ {
static const int8_t PC1[] = { static const int8_t PC1[] = {
7, 15, 23, 31, 39, 47, 55, 63, 6, 14, 22, 30, 38, 46, 7, 15, 23, 31, 39, 47, 55, 63, 6, 14, 22, 30, 38, 46,

Просмотреть файл

@ -1124,7 +1124,7 @@ static void eddsa_sign(ssh_key *key, ptrlen data,
mp_free(s); mp_free(s);
} }
const struct ecsign_extra sign_extra_ed25519 = { static const struct ecsign_extra sign_extra_ed25519 = {
ec_ed25519, &ssh_sha512, ec_ed25519, &ssh_sha512,
NULL, 0, NULL, 0,
}; };
@ -1154,7 +1154,7 @@ const ssh_keyalg ssh_ecdsa_ed25519 = {
static const unsigned char nistp256_oid[] = { static const unsigned char nistp256_oid[] = {
0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07
}; };
const struct ecsign_extra sign_extra_nistp256 = { static const struct ecsign_extra sign_extra_nistp256 = {
ec_p256, &ssh_sha256, ec_p256, &ssh_sha256,
nistp256_oid, lenof(nistp256_oid), nistp256_oid, lenof(nistp256_oid),
}; };
@ -1184,7 +1184,7 @@ const ssh_keyalg ssh_ecdsa_nistp256 = {
static const unsigned char nistp384_oid[] = { static const unsigned char nistp384_oid[] = {
0x2b, 0x81, 0x04, 0x00, 0x22 0x2b, 0x81, 0x04, 0x00, 0x22
}; };
const struct ecsign_extra sign_extra_nistp384 = { static const struct ecsign_extra sign_extra_nistp384 = {
ec_p384, &ssh_sha384, ec_p384, &ssh_sha384,
nistp384_oid, lenof(nistp384_oid), nistp384_oid, lenof(nistp384_oid),
}; };
@ -1214,7 +1214,7 @@ const ssh_keyalg ssh_ecdsa_nistp384 = {
static const unsigned char nistp521_oid[] = { static const unsigned char nistp521_oid[] = {
0x2b, 0x81, 0x04, 0x00, 0x23 0x2b, 0x81, 0x04, 0x00, 0x23
}; };
const struct ecsign_extra sign_extra_nistp521 = { static const struct ecsign_extra sign_extra_nistp521 = {
ec_p521, &ssh_sha512, ec_p521, &ssh_sha512,
nistp521_oid, lenof(nistp521_oid), nistp521_oid, lenof(nistp521_oid),
}; };
@ -1449,7 +1449,7 @@ const ssh_kex ssh_ec_kex_curve25519 = {
&ssh_sha256, &kex_extra_curve25519, &ssh_sha256, &kex_extra_curve25519,
}; };
const struct eckex_extra kex_extra_nistp256 = { static const struct eckex_extra kex_extra_nistp256 = {
ec_p256, ec_p256,
ssh_ecdhkex_w_setup, ssh_ecdhkex_w_setup,
ssh_ecdhkex_w_cleanup, ssh_ecdhkex_w_cleanup,
@ -1461,7 +1461,7 @@ const ssh_kex ssh_ec_kex_nistp256 = {
&ssh_sha256, &kex_extra_nistp256, &ssh_sha256, &kex_extra_nistp256,
}; };
const struct eckex_extra kex_extra_nistp384 = { static const struct eckex_extra kex_extra_nistp384 = {
ec_p384, ec_p384,
ssh_ecdhkex_w_setup, ssh_ecdhkex_w_setup,
ssh_ecdhkex_w_cleanup, ssh_ecdhkex_w_cleanup,
@ -1473,7 +1473,7 @@ const ssh_kex ssh_ec_kex_nistp384 = {
&ssh_sha384, &kex_extra_nistp384, &ssh_sha384, &kex_extra_nistp384,
}; };
const struct eckex_extra kex_extra_nistp521 = { static const struct eckex_extra kex_extra_nistp521 = {
ec_p521, ec_p521,
ssh_ecdhkex_w_setup, ssh_ecdhkex_w_setup,
ssh_ecdhkex_w_cleanup, ssh_ecdhkex_w_cleanup,

Просмотреть файл

@ -160,7 +160,7 @@ static const char *hmac_text_name(ssh2_mac *mac)
return ctx->text_name->s; return ctx->text_name->s;
} }
const struct hmac_extra ssh_hmac_sha256_extra = { &ssh_sha256, "" }; static const struct hmac_extra ssh_hmac_sha256_extra = { &ssh_sha256, "" };
const ssh2_macalg ssh_hmac_sha256 = { const ssh2_macalg ssh_hmac_sha256 = {
hmac_new, hmac_free, hmac_key, hmac_new, hmac_free, hmac_key,
hmac_start, hmac_genresult, hmac_text_name, hmac_start, hmac_genresult, hmac_text_name,
@ -168,7 +168,7 @@ const ssh2_macalg ssh_hmac_sha256 = {
32, 32, &ssh_hmac_sha256_extra, 32, 32, &ssh_hmac_sha256_extra,
}; };
const struct hmac_extra ssh_hmac_md5_extra = { &ssh_md5, "" }; static const struct hmac_extra ssh_hmac_md5_extra = { &ssh_md5, "" };
const ssh2_macalg ssh_hmac_md5 = { const ssh2_macalg ssh_hmac_md5 = {
hmac_new, hmac_free, hmac_key, hmac_new, hmac_free, hmac_key,
hmac_start, hmac_genresult, hmac_text_name, hmac_start, hmac_genresult, hmac_text_name,
@ -176,7 +176,7 @@ const ssh2_macalg ssh_hmac_md5 = {
16, 16, &ssh_hmac_md5_extra, 16, 16, &ssh_hmac_md5_extra,
}; };
const struct hmac_extra ssh_hmac_sha1_extra = { &ssh_sha1, "" }; static const struct hmac_extra ssh_hmac_sha1_extra = { &ssh_sha1, "" };
const ssh2_macalg ssh_hmac_sha1 = { const ssh2_macalg ssh_hmac_sha1 = {
hmac_new, hmac_free, hmac_key, hmac_new, hmac_free, hmac_key,
@ -185,7 +185,7 @@ const ssh2_macalg ssh_hmac_sha1 = {
20, 20, &ssh_hmac_sha1_extra, 20, 20, &ssh_hmac_sha1_extra,
}; };
const struct hmac_extra ssh_hmac_sha1_96_extra = { &ssh_sha1, "-96" }; static const struct hmac_extra ssh_hmac_sha1_96_extra = { &ssh_sha1, "-96" };
const ssh2_macalg ssh_hmac_sha1_96 = { const ssh2_macalg ssh_hmac_sha1_96 = {
hmac_new, hmac_free, hmac_key, hmac_new, hmac_free, hmac_key,
@ -194,7 +194,7 @@ const ssh2_macalg ssh_hmac_sha1_96 = {
12, 20, &ssh_hmac_sha1_96_extra, 12, 20, &ssh_hmac_sha1_96_extra,
}; };
const struct hmac_extra ssh_hmac_sha1_buggy_extra = { static const struct hmac_extra ssh_hmac_sha1_buggy_extra = {
&ssh_sha1, "", "bug-compatible" &ssh_sha1, "", "bug-compatible"
}; };
@ -205,7 +205,7 @@ const ssh2_macalg ssh_hmac_sha1_buggy = {
20, 16, &ssh_hmac_sha1_buggy_extra, 20, 16, &ssh_hmac_sha1_buggy_extra,
}; };
const struct hmac_extra ssh_hmac_sha1_96_buggy_extra = { static const struct hmac_extra ssh_hmac_sha1_96_buggy_extra = {
&ssh_sha1, "-96", "bug-compatible" &ssh_sha1, "-96", "bug-compatible"
}; };

Просмотреть файл

@ -130,7 +130,7 @@ static void MD5_Block(MD5_Core_State *s, uint32_t *block)
static void MD5_BinarySink_write(BinarySink *bs, const void *data, size_t len); static void MD5_BinarySink_write(BinarySink *bs, const void *data, size_t len);
void MD5Init(struct MD5Context *s) static void MD5Init(struct MD5Context *s)
{ {
MD5_Core_Init(&s->core); MD5_Core_Init(&s->core);
s->blkused = 0; s->blkused = 0;
@ -183,7 +183,7 @@ static void MD5_BinarySink_write(BinarySink *bs, const void *data, size_t len)
} }
} }
void MD5Final(unsigned char output[16], struct MD5Context *s) static void MD5Final(unsigned char output[16], struct MD5Context *s)
{ {
int i; int i;
unsigned pad; unsigned pad;

Просмотреть файл

@ -128,7 +128,7 @@ bool rsa_ssh1_encrypt(unsigned char *data, int length, RSAKey *key)
* Uses Chinese Remainder Theorem to speed computation up over the * Uses Chinese Remainder Theorem to speed computation up over the
* obvious implementation of a single big modpow. * obvious implementation of a single big modpow.
*/ */
mp_int *crt_modpow(mp_int *base, mp_int *exp, mp_int *mod, static mp_int *crt_modpow(mp_int *base, mp_int *exp, mp_int *mod,
mp_int *p, mp_int *q, mp_int *iqmp) mp_int *p, mp_int *q, mp_int *iqmp)
{ {
mp_int *pm1, *qm1, *pexp, *qexp, *presult, *qresult; mp_int *pm1, *qm1, *pexp, *qexp, *presult, *qresult;
@ -780,7 +780,7 @@ static void rsa2_sign(ssh_key *key, ptrlen data,
mp_free(out); mp_free(out);
} }
char *rsa2_invalid(ssh_key *key, unsigned flags) static char *rsa2_invalid(ssh_key *key, unsigned flags)
{ {
RSAKey *rsa = container_of(key, RSAKey, sshk); RSAKey *rsa = container_of(key, RSAKey, sshk);
size_t bits = mp_get_nbits(rsa->modulus), nbytes = (bits + 7) / 8; size_t bits = mp_get_nbits(rsa->modulus), nbytes = (bits + 7) / 8;

Просмотреть файл

@ -193,14 +193,14 @@ static void SHA512_Block(SHA512_State *s, uint64_t *block) {
static void SHA512_BinarySink_write(BinarySink *bs, static void SHA512_BinarySink_write(BinarySink *bs,
const void *p, size_t len); const void *p, size_t len);
void SHA512_Init(SHA512_State *s) { static void SHA512_Init(SHA512_State *s) {
SHA512_Core_Init(s); SHA512_Core_Init(s);
s->blkused = 0; s->blkused = 0;
s->lenhi = s->lenlo = 0; s->lenhi = s->lenlo = 0;
BinarySink_INIT(s, SHA512_BinarySink_write); BinarySink_INIT(s, SHA512_BinarySink_write);
} }
void SHA384_Init(SHA512_State *s) { static void SHA384_Init(SHA512_State *s) {
SHA384_Core_Init(s); SHA384_Core_Init(s);
s->blkused = 0; s->blkused = 0;
s->lenhi = s->lenlo = 0; s->lenhi = s->lenlo = 0;
@ -246,7 +246,7 @@ static void SHA512_BinarySink_write(BinarySink *bs,
} }
} }
void SHA512_Final(SHA512_State *s, unsigned char *digest) { static void SHA512_Final(SHA512_State *s, unsigned char *digest) {
int i; int i;
int pad; int pad;
unsigned char c[BLKSIZE]; unsigned char c[BLKSIZE];
@ -271,7 +271,7 @@ void SHA512_Final(SHA512_State *s, unsigned char *digest) {
PUT_64BIT_MSB_FIRST(digest + i*8, s->h[i]); PUT_64BIT_MSB_FIRST(digest + i*8, s->h[i]);
} }
void SHA384_Final(SHA512_State *s, unsigned char *digest) { static void SHA384_Final(SHA512_State *s, unsigned char *digest) {
unsigned char biggerDigest[512 / 8]; unsigned char biggerDigest[512 / 8];
SHA512_Final(s, biggerDigest); SHA512_Final(s, biggerDigest);
memcpy(digest, biggerDigest, 384 / 8); memcpy(digest, biggerDigest, 384 / 8);

Просмотреть файл

@ -55,12 +55,12 @@
#define has_compat(x) ( ((CL_##x)&term->compatibility_level) != 0 ) #define has_compat(x) ( ((CL_##x)&term->compatibility_level) != 0 )
const char *EMPTY_WINDOW_TITLE = ""; static const char *const EMPTY_WINDOW_TITLE = "";
const char sco2ansicolour[] = { 0, 4, 2, 6, 1, 5, 3, 7 }; static const char sco2ansicolour[] = { 0, 4, 2, 6, 1, 5, 3, 7 };
#define sel_nl_sz (sizeof(sel_nl)/sizeof(wchar_t)) #define sel_nl_sz (sizeof(sel_nl)/sizeof(wchar_t))
const wchar_t sel_nl[] = SEL_NL; static const wchar_t sel_nl[] = SEL_NL;
/* /*
* Fetch the character at a particular position in a line array, * Fetch the character at a particular position in a line array,

Просмотреть файл

@ -99,7 +99,7 @@ enum ValueType {
typedef enum ValueType ValueType; typedef enum ValueType ValueType;
const char *const type_names[] = { static const char *const type_names[] = {
#define VALTYPE_NAME(n,t,f) #n, #define VALTYPE_NAME(n,t,f) #n,
VALUE_TYPES(VALTYPE_NAME) VALUE_TYPES(VALTYPE_NAME)
#undef VALTYPE_NAME #undef VALTYPE_NAME
@ -384,7 +384,7 @@ struct finaliser {
}; };
static struct finaliser *finalisers; static struct finaliser *finalisers;
size_t nfinalisers, finalisersize; static size_t nfinalisers, finalisersize;
static void add_finaliser(finaliser_fn_t fn, void *ctx) static void add_finaliser(finaliser_fn_t fn, void *ctx)
{ {

Просмотреть файл

@ -3279,14 +3279,14 @@ static void messagebox_handler(union control *ctrl, dlgparam *dp,
dlg_end(dp, ctrl->generic.context.i); dlg_end(dp, ctrl->generic.context.i);
} }
const struct message_box_button button_array_yn[] = { static const struct message_box_button button_array_yn[] = {
{"Yes", 'y', +1, 1}, {"Yes", 'y', +1, 1},
{"No", 'n', -1, 0}, {"No", 'n', -1, 0},
}; };
const struct message_box_buttons buttons_yn = { const struct message_box_buttons buttons_yn = {
button_array_yn, lenof(button_array_yn), button_array_yn, lenof(button_array_yn),
}; };
const struct message_box_button button_array_ok[] = { static const struct message_box_button button_array_ok[] = {
{"OK", 'o', 1, 1}, {"OK", 'o', 1, 1},
}; };
const struct message_box_buttons buttons_ok = { const struct message_box_buttons buttons_ok = {

Просмотреть файл

@ -45,7 +45,7 @@ static void uxpgnt_log(PageantListenerClient *plc, const char *fmt, va_list ap)
fprintf(pageant_logfp, "\n"); fprintf(pageant_logfp, "\n");
} }
const PageantListenerClientVtable uxpgnt_vtable = { static const PageantListenerClientVtable uxpgnt_vtable = {
uxpgnt_log, uxpgnt_log,
}; };

Просмотреть файл

@ -32,9 +32,8 @@ struct x11_err_to_ignore {
unsigned long serial; unsigned long serial;
}; };
struct x11_err_to_ignore *errs; static struct x11_err_to_ignore *errs;
static size_t nerrs, errsize;
size_t nerrs, errsize;
static int x11_error_handler(Display *thisdisp, XErrorEvent *err) static int x11_error_handler(Display *thisdisp, XErrorEvent *err)
{ {

Просмотреть файл

@ -1188,7 +1188,7 @@ int flags = FLAG_SYNCAGENT;
struct winpgnt_client { struct winpgnt_client {
PageantListenerClient plc; PageantListenerClient plc;
}; };
const PageantListenerClientVtable winpgnt_vtable = { static const PageantListenerClientVtable winpgnt_vtable = {
NULL, /* no logging */ NULL, /* no logging */
}; };

Просмотреть файл

@ -210,7 +210,7 @@ static size_t named_pipe_agent_gotdata(
return 0; return 0;
} }
agent_pending_query *named_pipe_agent_query( static agent_pending_query *named_pipe_agent_query(
strbuf *query, void **out, int *outlen, strbuf *query, void **out, int *outlen,
void (*callback)(void *, void *, int), void *callback_ctx) void (*callback)(void *, void *, int), void *callback_ctx)
{ {

Просмотреть файл

@ -92,7 +92,7 @@ PSID get_user_sid(void)
return ret; return ret;
} }
bool getsids(char **error) static bool getsids(char **error)
{ {
#ifdef __clang__ #ifdef __clang__
#pragma clang diagnostic push #pragma clang diagnostic push