Skip to content

Commit f325275

Browse files
Kolpatimfel
authored andcommitted
added ascii check to getAddrInfo and implemented detach on socket object
1 parent 941a4d6 commit f325275

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import java.net.Inet4Address;
4848
import java.net.InetAddress;
4949
import java.net.UnknownHostException;
50+
import java.nio.charset.StandardCharsets;
5051
import java.util.ArrayList;
5152
import java.util.HashMap;
5253
import java.util.LinkedList;
@@ -59,7 +60,6 @@
5960
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
6061
import com.oracle.graal.python.builtins.PythonBuiltins;
6162
import com.oracle.graal.python.builtins.objects.PNone;
62-
import com.oracle.graal.python.builtins.objects.exception.OSErrorEnum;
6363
import com.oracle.graal.python.builtins.objects.ints.PInt;
6464
import com.oracle.graal.python.builtins.objects.list.PList;
6565
import com.oracle.graal.python.builtins.objects.socket.PSocket;
@@ -76,7 +76,6 @@
7676
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
7777
import com.oracle.truffle.api.dsl.NodeFactory;
7878
import com.oracle.truffle.api.dsl.Specialization;
79-
import com.oracle.truffle.api.frame.VirtualFrame;
8079

8180
import org.graalvm.nativeimage.ImageInfo;
8281

@@ -558,6 +557,10 @@ Object getAddrInfo(String host, int port, int family, int type, int proto, int f
558557
@Specialization
559558
@TruffleBoundary
560559
Object getAddrInfo(String host, String port, int family, int type, int proto, int flags) {
560+
if (!StandardCharsets.US_ASCII.newEncoder().canEncode(port)) {
561+
throw raise(PythonBuiltinClassType.UnicodeEncodeError);
562+
}
563+
561564
if (services == null) {
562565
services = parseServices();
563566
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,16 @@ int fileno(PSocket socket) {
570570
}
571571
}
572572

573+
// detach
574+
@Builtin(name = "detach", minNumOfPositionalArgs = 1)
575+
@GenerateNodeFactory
576+
abstract static class SockDetachNode extends PythonUnaryBuiltinNode {
577+
@Specialization
578+
int detach(PSocket socket) {
579+
return socket.getFileno();
580+
}
581+
}
582+
573583
@Builtin(name = "_setsockopt", minNumOfPositionalArgs = 4)
574584
@GenerateNodeFactory
575585
abstract static class SetSockOptNode extends PythonBuiltinNode {

0 commit comments

Comments
 (0)