about summary refs log tree commit diff
path: root/pkg/lang/vm/mem/errors.go
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-05-28 01:22:17 +0000
committerGitHub <noreply@github.com>2022-05-28 01:22:17 +0000
commit0a7700112f82e634a957685bee0cbaa3458f4945 (patch)
tree847c397970d7d852bc988a7a01f4625eae443edb /pkg/lang/vm/mem/errors.go
parent83d1dc87f3336d70ccda476627c70c282b7b6e11 (diff)
downloadjinx-0a7700112f82e634a957685bee0cbaa3458f4945.tar.zst
jinx-0a7700112f82e634a957685bee0cbaa3458f4945.zip
Harden VM Mem
Diffstat (limited to 'pkg/lang/vm/mem/errors.go')
-rw-r--r--pkg/lang/vm/mem/errors.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/pkg/lang/vm/mem/errors.go b/pkg/lang/vm/mem/errors.go
new file mode 100644
index 0000000..e7a3f8f
--- /dev/null
+++ b/pkg/lang/vm/mem/errors.go
@@ -0,0 +1,17 @@
+package mem
+
+import "errors"
+
+var (
+	ErrMemOverflow = errors.New("memory overflow, cannot allocate more than 10000 memory cells")
+
+	ErrFatalNonFreeCell = errors.New("non-free cell marked as free")
+)
+
+type ErrInvalidMemAccess struct {
+	Ptr Ptr
+}
+
+func (e ErrInvalidMemAccess) Error() string {
+	return "invalid memory access at " + e.Ptr.String()
+}