[FreeBSD-users-jp 95609] Re: FreeBSD Security Advisory FreeBSD-SA-15:24.rpcbind
Akihiro HIRANO
hirano @ t.kanazawa-u.ac.jp
2015年 10月 1日 (木) 01:52:38 UTC
平野@金沢大です。
On 2015/09/30 3:39, FreeBSD Security Advisories wrote:
>
=============================================================================
> FreeBSD-SA-15:24.rpcbind Security
Advisory
> The
FreeBSD Project
>
> Topic: rpcbind(8) remote denial of service
10.1R amd64マシンでfreebsd-updateして上記を適用すると、
rpcbindが落ちまくるという症状になりました。
NISのサーバ兼クライアントだったので、NISが使用不能なりました。
freebsd-securityでも同じような訴えがありました。
添付のパッチで直ったという報告がありますが、
当方ではまだテストしておりません。
以上、ご参考までに。
----
平野晃宏@金沢大学 大学院 自然科学研究科 電子情報科学専攻
hirano at t.kanazawa-u.ac.jp
-------------- next part --------------
Index: usr.sbin/rpcbind/rpcb_svc_com.c
===================================================================
--- usr.sbin/rpcbind/rpcb_svc_com.c (revision 288421)
+++ usr.sbin/rpcbind/rpcb_svc_com.c (working copy)
@@ -1052,12 +1052,15 @@ static bool_t
netbuf_copybuf(struct netbuf *dst, const struct netbuf *src)
{
- assert(dst->buf == NULL);
+ if (dst->len != src->len || dst->buf == NULL) {
+ if (dst->buf != NULL)
+ free(dst->buf);
+ if ((dst->buf = malloc(src->len)) == NULL)
+ return (FALSE);
- if ((dst->buf = malloc(src->len)) == NULL)
- return (FALSE);
+ dst->maxlen = dst->len = src->len;
+ }
- dst->maxlen = dst->len = src->len;
memcpy(dst->buf, src->buf, src->len);
return (TRUE);
}
freebsd-users-jp メーリングリストの案内