Skip to content

Commit 484a9f6

Browse files
committed
signal.signal throw overflowerror on when signum is > int
1 parent a0a71a0 commit 484a9f6

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,14 @@
4040
*/
4141
package com.oracle.graal.python.builtins.modules;
4242

43+
import static java.lang.StrictMath.toIntExact;
44+
4345
import java.util.Hashtable;
4446
import java.util.List;
4547

4648
import com.oracle.graal.python.builtins.Builtin;
4749
import com.oracle.graal.python.builtins.CoreFunctions;
50+
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
4851
import com.oracle.graal.python.builtins.PythonBuiltins;
4952
import com.oracle.graal.python.builtins.objects.PNone;
5053
import com.oracle.graal.python.builtins.objects.function.PBuiltinFunction;
@@ -65,8 +68,6 @@
6568
import com.oracle.truffle.api.dsl.Specialization;
6669
import com.oracle.truffle.api.dsl.TypeSystemReference;
6770

68-
import static java.lang.StrictMath.toIntExact;
69-
7071
@CoreFunctions(defineModule = "_signal")
7172
public class SignalModuleBuiltins extends PythonBuiltins {
7273
private static Hashtable<Integer, Object> signalHandlers = new Hashtable<>();
@@ -209,7 +210,11 @@ Object signal(int signum, PFunction handler) {
209210
@Specialization
210211
@TruffleBoundary
211212
Object signal(long signum, PFunction handler) {
212-
return installSignalHandler(toIntExact(signum), handler, handler.getCallTarget(), createArgs.execute(new Object[]{signum, PNone.NONE}));
213+
try {
214+
return installSignalHandler(toIntExact(signum), handler, handler.getCallTarget(), createArgs.execute(new Object[]{signum, PNone.NONE}));
215+
} catch (ArithmeticException ae) {
216+
throw raise(PythonBuiltinClassType.OverflowError, "Python int too large to convert to C int");
217+
}
213218
}
214219
}
215220
}

0 commit comments

Comments
 (0)