Skip to content

Commit 4332ea6

Browse files
committed
supress warnings in socket builtins, don't allow sockets when native access is prohibited
1 parent 3d4f432 commit 4332ea6

File tree

4 files changed

+10
-20
lines changed

4 files changed

+10
-20
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/Python3Core.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import com.oracle.graal.python.builtins.modules.SREModuleBuiltins;
7474
import com.oracle.graal.python.builtins.modules.SelectModuleBuiltins;
7575
import com.oracle.graal.python.builtins.modules.SignalModuleBuiltins;
76+
import com.oracle.graal.python.builtins.modules.SocketModuleBuiltins;
7677
import com.oracle.graal.python.builtins.modules.StringModuleBuiltins;
7778
import com.oracle.graal.python.builtins.modules.SysModuleBuiltins;
7879
import com.oracle.graal.python.builtins.modules.TimeModuleBuiltins;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SocketModuleBuiltins.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import com.oracle.graal.python.builtins.objects.type.PythonClass;
5151
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
5252
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
53+
import com.oracle.graal.python.runtime.exception.PythonErrorType;
5354
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
5455
import com.oracle.truffle.api.dsl.NodeFactory;
5556
import com.oracle.truffle.api.dsl.Specialization;
@@ -66,8 +67,12 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
6667
@GenerateNodeFactory
6768
public abstract static class SocketNode extends PythonBuiltinNode {
6869
@Specialization
69-
Object socket(PythonClass cls, int family, int type, int proto, PNone fileno) {
70-
return factory().createSocket(cls, family, type, proto);
70+
Object socket(PythonClass cls, int family, int type, int proto, @SuppressWarnings("unused") PNone fileno) {
71+
if (getContext().getEnv().isNativeAccessAllowed()) {
72+
return factory().createSocket(cls, family, type, proto);
73+
} else {
74+
throw raise(PythonErrorType.OSError, "creating sockets not allowed");
75+
}
7176
}
7277
}
7378
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/socket/PSocket.java

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,32 +61,15 @@ public class PSocket extends PythonBuiltinObject {
6161
private final int proto;
6262

6363
private double timeout;
64-
private boolean blocking;
6564

66-
private SelectableChannel channel;
65+
@SuppressWarnings("unused") private SelectableChannel channel;
6766
private InetSocketAddress address = EPHEMERAL_ADDRESS;
6867

69-
private enum SocketType {
70-
UNKNOWN_SOCKET,
71-
CLIENT_SOCKET,
72-
SERVER_SOCKET,
73-
DATAGRAM_SOCKET
74-
}
75-
76-
private SocketType socketType;
77-
7868
public PSocket(LazyPythonClass cls, int family, int type, int proto) {
7969
super(cls);
8070
this.family = family;
8171
this.type = type;
8272
this.proto = proto;
83-
switch (type) {
84-
case SOCK_DGRAM:
85-
socketType = SocketType.DATAGRAM_SOCKET;
86-
break;
87-
default:
88-
socketType = SocketType.UNKNOWN_SOCKET;
89-
}
9073
}
9174

9275
public int getFamily() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/socket/SocketBuiltins.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import com.oracle.truffle.api.dsl.Specialization;
5959

6060
@CoreFunctions(extendClasses = PythonBuiltinClassType.PSocket)
61+
@SuppressWarnings("unused")
6162
public class SocketBuiltins extends PythonBuiltins {
6263

6364
@Override

0 commit comments

Comments
 (0)