91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.41MB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發布日期: 2023-08-28
  • 語言: 其他
  • 標簽: openssh??

資源簡介

OpenSSh 7.1 相比 OpenSSH 7.0 的改進 ========================= 此版本是個 bug 修復版本 安全更新 -------- * sshd(8): OpenSSH 7.0 contained a logic error in PermitRootLogin= prohibit-password/without-password that could, depending on compile-time configuration, permit password authentication to root while preventing other forms of authentication. This problem was reported by Mantas Mikulenas. Bug 修復 -------- * ssh(1), sshd(8): add compatability workarounds for FuTTY * ssh(1), sshd(8): refine compatability workarounds for WinSCP * Fix a number of memory faults (double-free, free of uninitialised memory, etc) in ssh(1) and ssh-keygen(1). Reported by Mateusz Kocielski. Checksums: ========== - SHA1 (openssh-7.1.tar.gz) = 06c1db39f33831fe004726e013b2cf84f1889042 - SHA256 (openssh-7.1.tar.gz) = H7U1se9EoBmhkKi2i7lqpMX9QHdDTsgpu7kd5VZUGSY= - SHA1 (openssh-7.1p1.tar.gz) = ed22af19f962262c493fcc6ed8c8826b2761d9b6 - SHA256 (openssh-7.1p1.tar.gz) = /AptLR0GPVxm3/2VJJPQzaJWytIE9oHeD4TvhbKthCg=

資源截圖

代碼片段和文件信息

/*	$OpenBSD:?addrmatch.cv?1.10?2015/07/08?19:04:21?markus?Exp?$?*/

/*
?*?Copyright?(c)?2004-2008?Damien?Miller?
?*
?*?Permission?to?use?copy?modify?and?distribute?this?software?for?any
?*?purpose?with?or?without?fee?is?hereby?granted?provided?that?the?above
?*?copyright?notice?and?this?permission?notice?appear?in?all?copies.
?*
?*?THE?SOFTWARE?IS?PROVIDED?“AS?IS“?AND?THE?AUTHOR?DISCLAIMS?ALL?WARRANTIES
?*?WITH?REGARD?TO?THIS?SOFTWARE?INCLUDING?ALL?IMPLIED?WARRANTIES?OF
?*?MERCHANTABILITY?AND?FITNESS.?IN?NO?EVENT?SHALL?THE?AUTHOR?BE?LIABLE?FOR
?*?ANY?SPECIAL?DIRECT?INDIRECT?OR?CONSEQUENTIAL?DAMAGES?OR?ANY?DAMAGES
?*?WHATSOEVER?RESULTING?FROM?LOSS?OF?USE?DATA?OR?PROFITS?WHETHER?IN?AN
?*?ACTION?OF?CONTRACT?NEGLIGENCE?OR?OTHER?TORTIOUS?ACTION?ARISING?OUT?OF
?*?OR?IN?CONNECTION?WITH?THE?USE?OR?PERFORMANCE?OF?THIS?SOFTWARE.
?*/

#include?“includes.h“

#include?
#include?
#include?
#include?

#include?
#include?
#include?
#include?
#include?

#include?“match.h“
#include?“log.h“

struct?xaddr?{
sa_family_t af;
union?{
struct?in_addr v4;
struct?in6_addr v6;
u_int8_t addr8[16];
u_int32_t addr32[4];
}?xa; ????/*?128-bit?address?*/
u_int32_t scope_id; /*?iface?scope?id?for?v6?*/
#define?v4 xa.v4
#define?v6 xa.v6
#define?addr8 xa.addr8
#define?addr32 xa.addr32
};

static?int
addr_unicast_masklen(int?af)
{
switch?(af)?{
case?AF_INET:
return?32;
case?AF_INET6:
return?128;
default:
return?-1;
}
}

static?inline?int
masklen_valid(int?af?u_int?masklen)
{
switch?(af)?{
case?AF_INET:
return?masklen?<=?32???0?:?-1;
case?AF_INET6:
return?masklen?<=?128???0?:?-1;
default:
return?-1;
}
}

/*
?*?Convert?struct?sockaddr?to?struct?xaddr
?*?Returns?0?on?success?-1?on?failure.
?*/
static?int
addr_sa_to_xaddr(struct?sockaddr?*sa?socklen_t?slen?struct?xaddr?*xa)
{
struct?sockaddr_in?*in4?=?(struct?sockaddr_in?*)sa;
struct?sockaddr_in6?*in6?=?(struct?sockaddr_in6?*)sa;

memset(xa?‘\0‘?sizeof(*xa));

switch?(sa->sa_family)?{
case?AF_INET:
if?(slen? return?-1;
xa->af?=?AF_INET;
memcpy(&xa->v4?&in4->sin_addr?sizeof(xa->v4));
break;
case?AF_INET6:
if?(slen? return?-1;
xa->af?=?AF_INET6;
memcpy(&xa->v6?&in6->sin6_addr?sizeof(xa->v6));
#ifdef?HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
xa->scope_id?=?in6->sin6_scope_id;
#endif
break;
default:
return?-1;
}

return?0;
}

/*
?*?Calculate?a?netmask?of?length?‘l‘?for?address?family?‘af‘?and
?*?store?it?in?‘n‘.
?*?Returns?0?on?success?-1?on?failure.
?*/
static?int
addr_netmask(int?af?u_int?l?struct?xaddr?*n)
{
int?i;

if?(masklen_valid(af?l)?!=?0?||?n?==?NULL)
return?-1;

memset(n?‘\0‘?sizeof(*n));
switch?(af)?{
case?AF_INET:
n->af?=?AF_INET;
if?(l?==?0)
return?0;
n->v4.s_addr?=?htonl((0xffffffff?< return?0;
case?AF_INET6:
n->af?

評論

共有 條評論