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:
@@ -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>
|
* Parses and provide access to the information contained in the <code>getdown.txt</code>
|
||||||
* configuration file.
|
* configuration file.
|
||||||
*/
|
*/
|
||||||
public class Application
|
public final class Application
|
||||||
{
|
{
|
||||||
/** The name of our configuration file. */
|
/** The name of our configuration file. */
|
||||||
public static final String CONFIG_FILE = "getdown.txt";
|
public static final String CONFIG_FILE = "getdown.txt";
|
||||||
|
|||||||
@@ -28,14 +28,14 @@ import static com.threerings.getdown.Log.log;
|
|||||||
/**
|
/**
|
||||||
* Displays a confirmation that the user wants to abort installation.
|
* Displays a confirmation that the user wants to abort installation.
|
||||||
*/
|
*/
|
||||||
public class AbortPanel extends JFrame
|
public final class AbortPanel extends JFrame
|
||||||
implements ActionListener
|
implements ActionListener
|
||||||
{
|
{
|
||||||
public AbortPanel (Getdown getdown, ResourceBundle msgs)
|
public AbortPanel (Getdown getdown, ResourceBundle msgs)
|
||||||
{
|
{
|
||||||
_getdown = getdown;
|
_getdown = getdown;
|
||||||
_msgs = msgs;
|
_msgs = msgs;
|
||||||
|
|
||||||
setLayout(new VGroupLayout());
|
setLayout(new VGroupLayout());
|
||||||
setResizable(false);
|
setResizable(false);
|
||||||
setTitle(get("m.abort_title"));
|
setTitle(get("m.abort_title"));
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import static com.threerings.getdown.Log.log;
|
|||||||
* Displays an interface with which the user can configure their proxy
|
* Displays an interface with which the user can configure their proxy
|
||||||
* settings.
|
* settings.
|
||||||
*/
|
*/
|
||||||
public class ProxyPanel extends JPanel
|
public final class ProxyPanel extends JPanel
|
||||||
implements ActionListener
|
implements ActionListener
|
||||||
{
|
{
|
||||||
public ProxyPanel (Getdown getdown, ResourceBundle msgs)
|
public ProxyPanel (Getdown getdown, ResourceBundle msgs)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import static com.threerings.getdown.Log.log;
|
import static com.threerings.getdown.Log.log;
|
||||||
|
|
||||||
public class RotatingBackgrounds
|
public final class RotatingBackgrounds
|
||||||
{
|
{
|
||||||
public interface ImageLoader {
|
public interface ImageLoader {
|
||||||
/** Loads and returns the image with the supplied path. */
|
/** 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.
|
* Displays download and patching status.
|
||||||
*/
|
*/
|
||||||
public class StatusPanel extends JComponent
|
public final class StatusPanel extends JComponent
|
||||||
implements ImageObserver
|
implements ImageObserver
|
||||||
{
|
{
|
||||||
public StatusPanel (ResourceBundle msgs)
|
public StatusPanel (ResourceBundle msgs)
|
||||||
|
|||||||
Reference in New Issue
Block a user