Die Version mruby 3.2 des eingebetteten Interpreters der dynamischen objektorientierten Programmiersprache Ruby wurde vorgestellt. Mruby bietet grundlegende Kompatibilität mit dem Ruby 3.x Syntaxlevel, mit Ausnahme der Unterstützung für Pattern Matching („case .. in“). Der Interpreter zeichnet sich durch einen geringen Speicherverbrauch aus und ist darauf ausgelegt, die Unterstützung der Ruby-Sprache in andere Anwendungen einzubetten. Der im Anwendung eingebettete Interpreter kann sowohl Quellcode in Ruby als auch Bytecode ausführen, der mit dem vom Projekt entwickelten Compiler „mrbc“ erstellt wurde. Die Quelltexte von mruby sind unter der MIT-Lizenz verfügbar.
In der neuen Version wurden 19 Sicherheitsanfälligkeiten behoben, die zu Pufferüberläufen, Dereferenzierung nuller Zeiger oder Zugriff auf Speicher nach dessen Freigabe führen könnten, wenn der Interpreter speziellen Ruby-Code verarbeitet.
Von nicht sicherheitsrelevanten Änderungen sind zu beachten:
- Unterstützung für die Übergabe anonymer Argumente (*, **, &).
- Unterstützung für große Ganzzahlen (mruby-bigint).
- Unterstützung für das Laden kompilierter Binärdateien mit der Erweiterung „.mrb“.
- Hinzugefügt die Option „—no-optimize“, um Optimierungen im mrbc-Compiler zu deaktivieren.
- Implementierung der Methoden Class#subclasses und Module#undefined_instance_methods in mruby-class-ext.
- Neue integrierte Bibliotheken mruby-errno, mruby-set, mruby-dir und mruby-data.
Quelle: opennet.ru
