Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

another bug in doslfn (Announce)

posted by Japheth Homepage, Germany (South), 19.03.2022, 08:09

The newest doslfn 0.41e may in a few cases report an error ( access denied, DOS error 5 ) which in fact is none.

I have a test case which should make doslfn emit this error, but I'm not quite sure if it will do so on another machine, so I examined the probable bug a bit on my own. If needed, I can provide the test case, of course.

The error occurs during a copy operation of a directory, containing more than 1000 files, mostly with LFNs.

The error is actually in doslfn, procedure "make_free_dirent_space":


        and     dx,not bit 3    ;weiter mit normalem Next_DirEnt
@@l1_:  jns     @@l1            ;(clears bit 3 of DL, tests sign of DH)
        call    Calc_Next_Cluster       ;there was no room for the longname
        jc      mfde_ret                ; so need to point to the new cluster
        call    _set_cur
        mov     bx,[Sektorp]
        jmp     @@l1_           ;Calc_Next_Cluster will clear sign


When Calc_Next_Cluster is called, it expects registers EAX and CL to be set correctly, but they aren't ( CL is supposed to contain a shift factor, but actually contains 0FFh!; and EAX does not contain the "user area" sector number for the directory that is to be enlarged ). So Calc_Next_Cluster fails, resulting in error 0005 to be returned.

---
MS-DOS forever!

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 374 users online (0 registered, 374 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum