De release van mruby 3.2 is gepresenteerd, een ingebedde interpreter van de dynamische objectgeoriënteerde programmeertaal Ruby. Mruby biedt basis syntaxiscompatibiliteit op niveau Ruby 3.x, met uitzondering van de ondersteuning voor patroonmatching (‘case .. in’). De interpreter heeft een laag geheugengebruik en is gericht op het inbedden van Ruby-taalondersteuning in andere applicaties. De in de applicatie ingebedde interpreter kan zowel Ruby-broncode als bytecode uitvoeren, verkregen met de compiler ‘mrbc’ die door het project wordt ontwikkeld. De bronbestanden van mruby worden verspreid onder de MIT-licentie.
In de nieuwe release zijn 19 kwetsbaarheden verholpen, die kunnen leiden tot bufferoverloop, dereferentie van nulwijzers of toegang tot geheugen na vrijgave bij de verwerking van speciaal geconfigureerde Ruby-code door de interpreter.
Niet-veiligheidsgerelateerde wijzigingen omvatten:
- Ondersteuning voor het doorgeven van anonieme argumenten (*, **, &),
- Ondersteuning voor grote gehele getallen (mruby-bigint).
- Ondersteuning voor het laden van gecompileerde binaire bestanden met de extensie ‘.mrb’.
- Toevoeging van de optie ‘—no-optimize’ om optimalisaties in de mrbc-compiler uit te schakelen.
- Implementatie van de methoden Class#subclasses en Module#undefined_instance_methods in mruby-class-ext.
- Nieuwe ingebedde bibliotheken mruby-errno, mruby-set, mruby-dir en mruby-data.
Bron: opennet.ru
