Menu

rEFInd version 0.12.0 broke with the Apple firmware version 429.0.0.0.0

Startergo
2021-01-20
2021-02-03
  • Startergo

    Startergo - 2021-01-20

    @srs5694 Rod rEFInd version 0.12.0 broke with the Apple firmware version 429.0.0.0.0. rEFInd 0.12.0 does not boot on that firmware revision.
    Tested version 0.11.5 and it is booting without a problem.

     
  • dakanji

    dakanji - 2021-01-21

    I also found where the code is broken.

    Well done. As it is a fairly large commit, you need to move on to Stage 2 ... finding the breaking item(s).

    Looking at the commit, the breaking item is likely to be one of the 'egFreeImage' or 'MyFreePool' calls ... with the later much more likely than the former.

    Unless you can tell from just looking at the code, you will need to comment out all the 'MyFreePool' instances and test. If it works, you are on the right track and just have to slug through by removing the commenting and testing one by one until you stumble on the offending line.

    When you find a 'bad' item, comment it out again, uncomment the others and test in case there is more than one problem line. If it fails, comment them out again and continue the process.

    When you find a 'bad' item, rinse and repeat until you are done.

    The 'bad' item(s) can then be examined. Most likely need to be deleted but could be they need to move up or down nesting order or something else done as would have gone in to plug a leak in the first place and this would still be there if deleted.

    If commenting all the committed 'MyFreePool' instances out does not work, do the same for 'egFreeImage' and run the same process.

    If fails with 'egFreeImage' commented out, then only a few items to examine which can be done manually. Could also mean this was not the breaking commit.

     

    Last edit: dakanji 2021-01-21
  • Startergo

    Startergo - 2021-01-21

    I wonder if there's a good memory leaks library for EFI? Or you could make one.

    memwatch is an ANSI C fault tolerant memory leak and corruption detection tool. Basically, you add a header file to your souce code files, and compile with MEMWATCH defined or not. Check the README and USING files for more instructions.

     
  • Startergo

    Startergo - 2021-01-21

    @joevt I wish actually someone really moderated this forum. If I post something with links I get this:

    Post awaiting moderation.

    I have seen this message in posts dating back in 2014. This forum is really awful. I am not even sure why people still keep their projects in SVN instead of moving them to GIT.

     
  • dakanji

    dakanji - 2021-01-28

    This Merge Request should fix the issue: DELETED

    Fixes a dangling pointer (which can be expected to result in Segfaults).
    Already applied to RefindPlus.

    If it doesn't fix this one (don't have the affected Mac to test) certainly would be fixing other issues. Pretty sure it is responsible for this though as only example of improper memory management in the specified commit.

    Patch file for rEFInd attached to the Merge Request.

    EDIT: Deleted the MR as appears Invalid

     

    Last edit: dakanji 2021-01-29
  • Startergo

    Startergo - 2021-01-28

    unfortunately still does not work

     
  • dakanji

    dakanji - 2021-01-28

    Are you sure you used the updated version after changes were forced pushed?
    Although names are the same, some changes were made.

    EDIT: Deleted the MR as appears Invalid

     

    Last edit: dakanji 2021-01-29
  • Startergo

    Startergo - 2021-02-03

    Latest firmware update 430.0.0.0.0 corrected the issue. rEFInd boots again on MacBookPro11,2 and 11,3.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.