{
char mtime[30] = "";
char *status, *flags; /* vss status info */
- char *ut = uptime_str();
+ /* nobody updates our version of "now" */
+ char *ut = get_server_uptime_str(NULL);
long offset = (nmmd->offset + 500) / 1000;
struct timeval current_time;
struct tm mtime_tm;
sender_info = para_strcat(sender_info, info);
free(info);
}
- ut = uptime_str();
+ ut = get_server_uptime_str(now);
ret = sc_send_va_buffer(scc, "version: " GIT_VERSION "\n"
"up: %s\nplayed: %u\n"
"server_pid: %d\n"
ret = -E_AUTH_REQUEST;
goto net_err;
}
- numbytes = ret;
ret = -E_AUTH_REQUEST;
if (strncmp(buf, AUTH_REQUEST_MSG, strlen(AUTH_REQUEST_MSG)))
goto net_err;
p = buf + strlen(AUTH_REQUEST_MSG);
PARA_DEBUG_LOG("received auth request for user %s\n", p);
- ret = -E_BAD_USER;
u = lookup_user(p);
if (u) {
get_random_bytes_or_die(rand_buf, sizeof(rand_buf));
PARA_INFO_LOG("decoding public rsa-ssh key %s\n", key_file);
ret = -ERRNO_TO_PARA_ERROR(EOVERFLOW);
if (map_size > INT_MAX / 4)
- goto out;
+ goto out_unmap;
blob_size = 2 * map_size;
blob = para_malloc(blob_size);
ret = uudecode(cp, blob, blob_size);
if (ret < 0)
- goto out;
+ goto out_unmap;
decoded_size = ret;
ret = check_ssh_key_header(blob, decoded_size);
if (ret < 0)
- goto out;
+ goto out_unmap;
ret = read_rsa_bignums(blob + ret, decoded_size - ret, &key->rsa);
if (ret < 0)
- goto out;
+ goto out_unmap;
ret = RSA_size(key->rsa);
- out:
+ out_unmap:
ret2 = para_munmap(map, map_size);
if (ret >= 0 && ret2 < 0)
ret = ret2;
+ out:
if (ret < 0) {
free(key);
*result = NULL;
int sc_recv_bin_buffer(struct stream_cipher_context *scc, char *buf,
size_t size)
{
- unsigned char *tmp = para_malloc(size);
+ unsigned char *tmp = para_malloc(ROUND_UP(size, RC4_ALIGN));
ssize_t ret = recv(scc->fd, tmp, size, 0);
if (ret > 0)