Update of /cvsroot/scsh/scsh-0.6/scsh
In directory usw-pr-cvs1:/tmp/cvs-serv7916
Modified Files:
network.scm network1.c
Log Message:
Check string-length of bind-socket in Scheme.
Index: network.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/network.scm,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -r1.23 -r1.24
*** network.scm 2001/09/13 07:59:40 1.23
--- network.scm 2001/09/17 18:23:30 1.24
***************
*** 200,210 ****
(else
(let ((family (socket:family sock)))
! (if (not (= family (socket-address:family name)))
! (error
! "bind-socket: trying to bind incompatible address to socket ~s"
! name)
! (%bind (socket->fdes sock)
! family
! (socket-address:address name)))))))
(import-os-error-syscall %bind (sockfd family name) "scheme_bind")
--- 200,214 ----
(else
(let ((family (socket:family sock)))
! (cond ((not (= family (socket-address:family name)))
! (error
! "bind-socket: trying to bind incompatible address to socket
~s"
! name))
! ((and (= family address-family/unix)
! (> (string-length name) 107))
! (error "bind-socket: path too long" name))
! (else
! %bind (socket->fdes sock)
! family
! (socket-address:address name)))))))
(import-os-error-syscall %bind (sockfd family name) "scheme_bind")
Index: network1.c
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/network1.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -r1.22 -r1.23
*** network1.c 2001/08/08 11:54:04 1.22
--- network1.c 2001/09/17 18:23:30 1.23
***************
*** 46,51 ****
name.sun_family=AF_UNIX;
! if (scheme_length>=(108-1)) /* save space for \0 */
! return(-1); // TODO: check this in scheme !
strncpy(name.sun_path,
s48_extract_string(scheme_name),
--- 46,50 ----
name.sun_family=AF_UNIX;
!
strncpy(name.sun_path,
s48_extract_string(scheme_name),
|