Avoid calling overridable function from constructor

When a constructor calls an overridable function, it may allow an attacker to access the "this" reference prior to the object being fully initialized, which can in turn lead to a vulnerability.

Application -> getLocalPath
ProxyPanel -> get
AbortPanel -> get
RotatingBackgrounds -> makeEmpty

(Triggered by internal security audit and Fortify analysis.)
This commit is contained in:
Daniel Gredler
2018-09-13 16:20:53 -04:00
parent 712b06f8fb
commit fdd767086a
5 changed files with 6 additions and 6 deletions
@@ -36,7 +36,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
* Parses and provide access to the information contained in the <code>getdown.txt</code>
* configuration file.
*/
public class Application
public final class Application
{
/** The name of our configuration file. */
public static final String CONFIG_FILE = "getdown.txt";
@@ -28,7 +28,7 @@ import static com.threerings.getdown.Log.log;
/**
* Displays a confirmation that the user wants to abort installation.
*/
public class AbortPanel extends JFrame
public final class AbortPanel extends JFrame
implements ActionListener
{
public AbortPanel (Getdown getdown, ResourceBundle msgs)
@@ -30,7 +30,7 @@ import static com.threerings.getdown.Log.log;
* Displays an interface with which the user can configure their proxy
* settings.
*/
public class ProxyPanel extends JPanel
public final class ProxyPanel extends JPanel
implements ActionListener
{
public ProxyPanel (Getdown getdown, ResourceBundle msgs)
@@ -10,7 +10,7 @@ import java.util.List;
import static com.threerings.getdown.Log.log;
public class RotatingBackgrounds
public final class RotatingBackgrounds
{
public interface ImageLoader {
/** Loads and returns the image with the supplied path. */
@@ -36,7 +36,7 @@ import static com.threerings.getdown.Log.log;
/**
* Displays download and patching status.
*/
public class StatusPanel extends JComponent
public final class StatusPanel extends JComponent
implements ImageObserver
{
public StatusPanel (ResourceBundle msgs)