Catalyzes the reversible oxidation of (S)-malate and (S)-sulfolactate to oxaloacetate and sulfopyruvate, respectively. Can use both NADH and NADPH, although activity is higher with NADPH. Oxidation of (S)-sulfolactate is observed only in the presence of NADP(+). Can also oxidize tartrate. Cannot reduce pyruvate, nor alpha-ketoglutarate. a (2S)-2-hydroxycarboxylate + NAD(+) = a 2-oxocarboxylate + H(+) + NADH a (2S)-2-hydroxycarboxylate + NADP(+) = a 2-oxocarboxylate + H(+) + NADPH kcat is 0.33 sec(-1) for NAD-dependent malate oxidation. kcat is 0.069 sec(-1) for NADP-dependent malate oxidation. Homotetramer. Belongs to the LDH/MDH superfamily.