Skip to content

Self-reference to $this in PelIfd::$maker_notes #6

Open
@saemy

Description

@saemy

PelIfd::$maker_notes["parent"] is always $this (there is only one caller of PelIfd::setMakerNotes()). However, adding $this to the array leads to a reference of a PelIfd instance to itself. As a result that PelIfd instance can not be cleaned up right away after all references to it go away (as the ref_count remains at 1 - the one to itself). Only at garbage collection time the garbage cycle is detected and that instance is cleaned up.

This is an issue in case big images are processed one after another. In that scenario PelIfd::$maker_notes['data'] contains the full image data (i.e. multiple MB) and is only released upon garbage collection time - which is not right away. Garbage memory is piling up and running out of memory is easily possible and the program might crash with "Fatal error: Allowed memory size of xxx bytes exhausted".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions