11import { Reader } from '@jsonjoy.com/buffers/lib/Reader' ;
22import { XdrDecoder } from '../../xdr/XdrDecoder' ;
3- import { Nfsv4Op , Nfsv4CbOp , Nfsv4FType , Nfsv4DelegType } from './constants' ;
3+ import { Nfsv4Op , Nfsv4CbOp , Nfsv4FType , Nfsv4DelegType , Nfsv4Stat } from './constants' ;
44import { Nfsv4DecodingError } from './errors' ;
55import * as msg from './messages' ;
66import * as structs from './structs' ;
@@ -229,14 +229,6 @@ export class Nfsv4Decoder {
229229 return new structs . Nfsv4Verifier ( data ) ;
230230 }
231231
232- // TODO: Why is this not used?
233- private readTime ( ) : structs . Nfsv4Time {
234- const xdr = this . xdr ;
235- const seconds = xdr . readHyper ( ) ;
236- const nseconds = xdr . readUnsignedInt ( ) ;
237- return new structs . Nfsv4Time ( seconds , nseconds ) ;
238- }
239-
240232 private readStateid ( ) : structs . Nfsv4Stateid {
241233 const xdr = this . xdr ;
242234 const seqid = xdr . readUnsignedInt ( ) ;
@@ -247,6 +239,7 @@ export class Nfsv4Decoder {
247239 private readBitmap ( ) : structs . Nfsv4Bitmap {
248240 const xdr = this . xdr ;
249241 const count = xdr . readUnsignedInt ( ) ;
242+ if ( count > 8 ) throw Nfsv4Stat . NFS4ERR_BADXDR ;
250243 const mask : number [ ] = [ ] ;
251244 for ( let i = 0 ; i < count ; i ++ ) mask . push ( xdr . readUnsignedInt ( ) ) ;
252245 return new structs . Nfsv4Bitmap ( mask ) ;
0 commit comments