Einführung der Veröffentlichung von mruby 3.2, einem eingebetteten Interpreter für die dynamische objektorientierte Programmiersprache Ruby. Mruby bietet grundlegende Syntaxkompatibilität auf Ruby 3.x-Ebene, mit Ausnahme der Unterstützung für Mustervergleich („case .. in“). Der Interpreter hat einen geringen Speicherverbrauch und konzentriert sich auf die Einbettung der Ruby-Sprachunterstützung in andere Anwendungen. Der in die Anwendung integrierte Interpreter kann sowohl Quellcode in der Ruby-Sprache als auch Bytecode ausführen, der mit dem vom Projekt entwickelten „mrbc“-Compiler erhalten wurde. Der mruby-Quellcode wird unter der MIT-Lizenz vertrieben.
Die neue Version behebt 19 Schwachstellen, die zu Pufferüberläufen, Nullzeiger-Dereferenzierungen oder Speicherzugriff nach Freilauf führen können, wenn der Interpreter speziell formatierten Ruby-Code verarbeitet.
Zu den nicht sicherheitsrelevanten Änderungen gehören:
- Unterstützung für die Übergabe anonymer Argumente (*, **, &),
- Unterstützung für große ganze Zahlen (mruby-bigint).
- Unterstützung für das Herunterladen kompilierter Binärdateien mit der Erweiterung „.mrb“.
- Hinzufügen der 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.
Source: opennet.ru