sb-bsd-sockets: check for MAKE-ALIEN success in GET-PROTOCOL-BY-NAME
authorNikodemus Siivola <nikodemus@sb-studio.net>
Fri, 18 Nov 2011 14:33:35 +0000 (16:33 +0200)
committerNikodemus Siivola <nikodemus@sb-studio.net>
Fri, 18 Nov 2011 15:19:00 +0000 (17:19 +0200)
   Currently of malloc fails it returns a null alien.

   Yuck.

contrib/sb-bsd-sockets/inet.lisp

index e4f7ff2..ebe6e35 100644 (file)
@@ -106,6 +106,10 @@ a list of protocol aliases"
                      buffer (sb-alien:make-alien sb-alien:char buffer-length))
                #-solaris
                (setf result (sb-alien:make-alien (* sockint::protoent)))
+               (when (or (sb-alien:null-alien result-buf)
+                         (sb-alien:null-alien buffer)
+                         (sb-alien:null-alien result))
+                 (error "Could not allocate foreign memory."))
                (let ((res (sockint::getprotobyname-r
                            name result-buf buffer buffer-length #-solaris result)))
                  (cond ((eql res 0)