Part one of this diff eliminates a series of u_long casts in favor of
just using native size_t types. A few other type adjustments.
Part two reorders a few conditionals in sshd for protocol 1 vs 2
handling. No functional change, just clearer and updated to reflect
protocol 2 as the default.
Index: mac.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/mac.c,v
retrieving revision 1.25
diff -u -p -r1.25 mac.c
--- mac.c 7 Nov 2013 11:58:27 -0000 1.25
+++ mac.c 21 Dec 2013 07:40:33 -0000
@@ -172,8 +172,8 @@ mac_compute(Mac *mac, u_int32_t seqno, u
u_char b[4], nonce[8];
if (mac->mac_len > sizeof(u))
- fatal("mac_compute: mac too long %u %lu",
- mac->mac_len, (u_long)sizeof(u));
+ fatal("mac_compute: mac too long %u %zu",
+ mac->mac_len, sizeof(u));
switch (mac->type) {
case SSH_EVP:
Index: monitor_mm.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/monitor_mm.c,v
retrieving revision 1.18
diff -u -p -r1.18 monitor_mm.c
--- monitor_mm.c 8 Nov 2013 00:39:15 -0000 1.18
+++ monitor_mm.c 21 Dec 2013 07:47:30 -0000
@@ -31,6 +31,7 @@
#include <errno.h>
#include <stdarg.h>
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@@ -42,7 +43,7 @@
static int
mm_compare(struct mm_share *a, struct mm_share *b)
{
- long diff = (char *)a->address - (char *)b->address;
+ ptrdiff_t diff = (char *)a->address - (char *)b->address;
if (diff == 0)
return (0);
@@ -69,8 +70,8 @@ mm_make_entry(struct mm_master *mm, stru
tmp2 = RB_INSERT(mmtree, head, tmp);
if (tmp2 != NULL)
- fatal("mm_make_entry(%p): double address %p->%p(%lu)",
- mm, tmp2, address, (u_long)size);
+ fatal("mm_make_entry(%p): double address %p->%p(%zu)",
+ mm, tmp2, address, size);
return (tmp);
}
@@ -96,9 +97,9 @@ mm_create(struct mm_master *mmalloc, siz
mm->mmalloc = mmalloc;
address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED,
- -1, (off_t)0);
+ -1, 0);
if (address == MAP_FAILED)
- fatal("mmap(%lu): %s", (u_long)size, strerror(errno));
+ fatal("mmap(%zu): %s", size, strerror(errno));
mm->address = address;
mm->size = size;
@@ -137,7 +138,7 @@ mm_destroy(struct mm_master *mm)
mm_freelist(mm->mmalloc, &mm->rb_allocated);
if (munmap(mm->address, mm->size) == -1)
- fatal("munmap(%p, %lu): %s", mm->address, (u_long)mm->size,
+ fatal("munmap(%p, %zu): %s", mm->address, mm->size,
strerror(errno));
if (mm->mmalloc == NULL)
free(mm);
@@ -152,7 +153,7 @@ mm_xmalloc(struct mm_master *mm, size_t
address = mm_malloc(mm, size);
if (address == NULL)
- fatal("%s: mm_malloc(%lu)", __func__, (u_long)size);
+ fatal("%s: mm_malloc(%zu)", __func__, size);
memset(address, 0, size);
return (address);
}
@@ -187,7 +188,7 @@ mm_malloc(struct mm_master *mm, size_t s
/* Does not change order in RB tree */
mms->size -= size;
- mms->address = (u_char *)mms->address + size;
+ mms->address = (char *)mms->address + size;
if (mms->size == 0) {
RB_REMOVE(mmtree, &mm->rb_free, mms);
@@ -240,8 +241,8 @@ mm_free(struct mm_master *mm, void *addr
/* Check if range does not overlap */
if (prev != NULL && MM_ADDRESS_END(prev) > address)
- fatal("mm_free: memory corruption: %p(%lu) > %p",
- prev->address, (u_long)prev->size, address);
+ fatal("mm_free: memory corruption: %p(%zu) > %p",
+ prev->address, prev->size, address);
/* See if we can merge backwards */
if (prev != NULL && MM_ADDRESS_END(prev) == address) {
@@ -263,8 +264,8 @@ mm_free(struct mm_master *mm, void *addr
return;
if (MM_ADDRESS_END(prev) > mms->address)
- fatal("mm_free: memory corruption: %p < %p(%lu)",
- mms->address, prev->address, (u_long)prev->size);
+ fatal("mm_free: memory corruption: %p < %p(%zu)",
+ mms->address, prev->address, prev->size);
if (MM_ADDRESS_END(prev) != mms->address)
return;
@@ -335,12 +336,12 @@ mm_share_sync(struct mm_master **pmm, st
void
mm_memvalid(struct mm_master *mm, void *address, size_t size)
{
- void *end = (u_char *)address + size;
+ void *end = (char *)address + size;
if (address < mm->address)
fatal("mm_memvalid: address too small: %p", address);
if (end < address)
fatal("mm_memvalid: end < address: %p < %p", end, address);
- if (end > (void *)((u_char *)mm->address + mm->size))
+ if (end > MM_ADDRESS_END(mm))
fatal("mm_memvalid: address too large: %p", address);
}
Index: monitor_mm.h
===================================================================
RCS file: /cvs/src/usr.bin/ssh/monitor_mm.h,v
retrieving revision 1.5
diff -u -p -r1.5 monitor_mm.h
--- monitor_mm.h 29 Apr 2008 11:20:31 -0000 1.5
+++ monitor_mm.h 21 Dec 2013 07:47:04 -0000
@@ -47,7 +47,7 @@ RB_PROTOTYPE(mmtree, mm_share, next, mm_
#define MM_MINSIZE 128
-#define MM_ADDRESS_END(x) (void *)((u_char *)(x)->address + (x)->size)
+#define MM_ADDRESS_END(x) (void *)((char *)(x)->address + (x)->size)
struct mm_master *mm_create(struct mm_master *, size_t);
void mm_destroy(struct mm_master *);
Index: xmalloc.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/xmalloc.c,v
retrieving revision 1.28
diff -u -p -r1.28 xmalloc.c
--- xmalloc.c 17 May 2013 00:13:14 -0000 1.28
+++ xmalloc.c 21 Dec 2013 07:38:23 -0000
@@ -31,7 +31,7 @@ xmalloc(size_t size)
fatal("xmalloc: zero size");
ptr = malloc(size);
if (ptr == NULL)
- fatal("xmalloc: out of memory (allocating %lu bytes)", (u_long)
size);
+ fatal("xmalloc: out of memory (allocating %zu bytes)", size);
return ptr;
}
@@ -46,8 +46,8 @@ xcalloc(size_t nmemb, size_t size)
fatal("xcalloc: nmemb * size > SIZE_T_MAX");
ptr = calloc(nmemb, size);
if (ptr == NULL)
- fatal("xcalloc: out of memory (allocating %lu bytes)",
- (u_long)(size * nmemb));
+ fatal("xcalloc: out of memory (allocating %zu bytes)",
+ size * nmemb);
return ptr;
}
@@ -66,8 +66,8 @@ xrealloc(void *ptr, size_t nmemb, size_t
else
new_ptr = realloc(ptr, new_size);
if (new_ptr == NULL)
- fatal("xrealloc: out of memory (new_size %lu bytes)",
- (u_long) new_size);
+ fatal("xrealloc: out of memory (new_size %zu bytes)",
+ new_size);
return new_ptr;
}
Index: sshd.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/sshd.c,v
retrieving revision 1.412
diff -u -p -r1.412 sshd.c
--- sshd.c 6 Dec 2013 13:39:49 -0000 1.412
+++ sshd.c 21 Dec 2013 07:59:20 -0000
@@ -397,21 +397,20 @@ sshd_exchange_identification(int sock_in
int mismatch;
int remote_major, remote_minor;
int major, minor;
- char *s, *newline = "\n";
+ char *s, *newline = "\r\n";
char buf[256]; /* Must not be larger than
remote_version. */
char remote_version[256]; /* Must be at least as big as buf. */
- if ((options.protocol & SSH_PROTO_1) &&
- (options.protocol & SSH_PROTO_2)) {
+ if ((options.protocol & SSH_PROTO_1)) {
major = PROTOCOL_MAJOR_1;
- minor = 99;
- } else if (options.protocol & SSH_PROTO_2) {
+ if (options.protocol & SSH_PROTO_2)
+ minor = 99;
+ else
+ minor = PROTOCOL_MINOR_1;
+ newline = "\n";
+ } else {
major = PROTOCOL_MAJOR_2;
minor = PROTOCOL_MINOR_2;
- newline = "\r\n";
- } else {
- major = PROTOCOL_MAJOR_1;
- minor = PROTOCOL_MINOR_1;
}
xasprintf(&server_version_string, "SSH-%d.%d-%.100s%s%s%s",