Skip to content

Commit bbb0d74

Browse files
committed
Make native value nodes robust when given arbitrary values.
1 parent 8c8ff0c commit bbb0d74

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/main/java/org/truffleruby/cext/UnwrapNode.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.truffleruby.language.control.RaiseException;
2323

2424
import com.oracle.truffle.api.dsl.Cached;
25+
import com.oracle.truffle.api.dsl.Fallback;
2526
import com.oracle.truffle.api.dsl.ImportStatic;
2627
import com.oracle.truffle.api.dsl.Specialization;
2728
import com.oracle.truffle.api.interop.ForeignAccess;
@@ -70,6 +71,11 @@ public Object unwrapTaggedObject(long handle) {
7071
return getContext().getValueWrapperManager().getFromHandleMap(handle);
7172
}
7273

74+
@Fallback
75+
public ValueWrapper unWrapUnexpectedHandle(long handle) {
76+
return null;
77+
}
78+
7379
public static UnwrapNativeNode create() {
7480
return UnwrapNativeNodeGen.create();
7581
}
@@ -110,6 +116,11 @@ public ValueWrapper unwrapTaggedObject(long handle) {
110116
return getContext().getValueWrapperManager().getWrapperFromHandleMap(handle);
111117
}
112118

119+
@Fallback
120+
public ValueWrapper unWrapUnexpectedHandle(long handle) {
121+
return null;
122+
}
123+
113124
public static NativeToWrapperNode create() {
114125
return NativeToWrapperNodeGen.create();
115126
}

0 commit comments

Comments
 (0)