Quick update... The problem appears to be that interpret_long_filename() is returning 0 as obtained from SVAL(base, 0) for each of the additional names, so interpret_long_filename() is being recalled with the same pointer over and over.