result in fasl-dumping internal type objects. (lp#890750)
* bug fix: type mismatch on (setf aref) and function return values no
longer result in fasl-dumping internal type objects.
- * bug fix: SB-BSD-SOCKETS:GET-PROTOCOL-BY-NAME leaked foreign memory.
+ * bug fix: SB-BSD-SOCKETS foreign memory leaks
+ ** GET-PROTOCOL-BY-NAME had a significant leak.
+ ** GET-HOST-BY-NAME and GET-HOST-BY-ADDRESS leaked 1 word per call on
+ systems providing getaddrinfo().
changes in sbcl-1.0.53 relative to sbcl-1.0.52:
* enhancement: on 64-bit targets, in src/compiler/generic/early-vm.lisp,
#+sb-bsd-sockets-addrinfo
(defun get-address-info (node)
- (sb-alien:with-alien ((res (* (* sockint::addrinfo)) :local
- (sb-alien:make-alien (* sockint::addrinfo))))
- (let ((err (sockint::getaddrinfo node nil nil res)))
+ (sb-alien:with-alien ((buf (sb-alien:array (* sockint::addrinfo) 1)))
+ (let* ((res (sb-alien:addr (sb-alien:deref buf 0)))
+ (err (sockint::getaddrinfo node nil nil res)))
(if (zerop err)
(let ((host-ent (make-instance 'host-ent
:name node
4)
(host-ent-addresses host-ent)
:test 'equalp)))))
- (sockint::free-addrinfo (sb-alien:deref res))
+ (sockint::freeaddrinfo (sb-alien:deref res))
host-ent)
(addrinfo-error "getaddrinfo" err)))))