anchor.diff:  	  ;; (:varray* form &optional max-length)
   	  (destructuring-bind (form &optional max-length) (cdr forms)
   	    (alexandria:with-gensyms (garr gi glen)
  -	      `(let* ((,glen (read-uint32 ,stream-sym))
  -		      (,garr (make-array ,glen)))
  +	      `(let ((,glen (read-uint32 ,stream-sym)))
  +             (when (> ,glen +max-octet-array-length+)
  +               (error "Attempted to read a silly size array ~DMB" (truncate ,glen (* 1024 1024))))
  +             (let ((,garr (make-array ,glen)))
   		 ,@(when max-length 
   		     `((when (> ,glen ,max-length) 
   			 (error "Length ~S exceeds maximum length ~S" ,glen ,max-length))))
  
positive.code: 
  (defxtype :string ((:reader read-xstring) (:writer write-xstring))
    ((stream)
     (let* ((len (read-uint32 stream))
  	  (buff (nibbles:make-octet-vector (pad-index len))))
       (read-sequence buff stream)
       (babel:octets-to-string buff :start 0 :end len)))
    ((stream obj)
     (let* ((octets (babel:string-to-octets obj))
  	  (length (length octets)))
  
negative.code:          ,@(when (eq form :octet)
              `((read-array-padding stream ,glen)
  		 ,garr))
  	 ,garr)))))
  	 (:varray 
  	  ;; (:varray form &optional max-length)
  	  (destructuring-bind (form &optional max-length) (cdr forms)
  