The default fitting routine uses ordinary least squares. You can do weighted least squares using the -w option. There is no positive-definiteness constraint on the fitted tensor, so negative eigenvalues are allowed (take a look at the list archive, this has been discussed extensively before).
The source code is available in $FSLDIR/src/fdt/dtifit.cc.