<div class="container">
    <h1>Recommended update for blog</h1>

    <table class="table table-striped table-bordered">
        <tbody>
        <tr>
            <th>Announcement ID:</th>
            <td>SUSE-RU-2026:22548-1</td>
        </tr>
        <tr>
            <th>Release Date:</th>
            <td>2026-07-07T16:51:38Z</td>
        </tr>
        
        <tr>
            <th>Rating:</th>
            <td>important</td>
        </tr>
        <tr>
            <th>References:</th>
            <td>
                <ul>
                    
                        <li style="display: inline;">
                            <a href="https://bugzilla.suse.com/show_bug.cgi?id=1264176">bsc#1264176</a>
                        </li>
                    
                    
                </ul>
            </td>
        </tr>
        
        <tr>
            <th>Affected Products:</th>
            <td>
                <ul class="list-group">
                    
                        <li class="list-group-item">SUSE Linux Micro 6.2</li>
                    
                </ul>
            </td>
        </tr>
        </tbody>
    </table>

    <p>An update that has one fix can now be installed.</p>

    


    
        <h2>Description:</h2>
    
    <p>This update for blog fixes the following issues:</p>
<ul>
<li>Update to version 2.45:<ul>
<li>Fix early boot LUKS prompt on s390x and resolve memory corruptions
  This update addresses several critical issues in the early boot phase,
  especially on s390x architectures, and hardens the daemon&#x27;s architecture:<ul>
<li>Initrd/Dracut: Properly include <code>systemd-ask-password-blog.path</code> in
  sysinit.target.wants during the initrd phase to ensure LUKS password
  prompts are captured early in the zipl phase.</li>
<li>Systemd Units: Drop restrictive <code>ConditionKernelCommandLine=!plymouth.enable=0</code>
  to prevent the agent from being disabled by standard mainframe boot parameters.</li>
<li>Memory Corruption: Fix a critical heap corruption by renaming the conflicting
  <code>alignof()</code> macro to <code>ALIGNED_SIZEOF()</code> and zeroing allocated memory for
   <code>struct request</code> (memset) to prevent reading uninitialized pointers.</li>
<li>Kernel Command Line: Improve <code>parse_cmdline()</code> to support boolean parameters
  without an explicit value (e.g., <code>blog.silent</code> defaults to <code>blog.silent=1</code>).</li>
<li>New Features: Introduce <code>blog.silent</code> to suppress console I/O and <code>blog.coldboot</code>
  to explicitly trigger the early coldstart password query.</li>
<li>Lifecycle: Switch <code>KillMode=none</code> to <code>KillMode=mixed</code> to comply with modern
  systemd process lifecycle management.</li>
<li>Fix: Passphrase prompt does not appear after installation with encryption enabled on s390x (bsc#1264176)</li>
</ul>
</li>
</ul>
</li>
<li>Update to version 2.44:<ul>
<li>Harden blog and use shims units to handle plymouth</li>
<li>Disable coldstart requests via epoll</li>
<li>Avoid handling fd twice in epoll loop</li>
</ul>
</li>
<li>Update to version 2.43:<ul>
<li>Make sure that if blog is running it is identified as plymouth Latest also add conflicts to
  systemd-ask-password-console units in the systemd-ask-password-blog units:<ul>
<li>This should avoid conflicting password agents asking the same question in s390x.</li>
</ul>
</li>
</ul>
</li>
<li>Update to version 2.42:<ul>
<li>Fix possible memory leaks, eliminate type punning, and resolve I/O blocking:<ol>
<li>Memory Safety and Leak Resolution:<ul>
<li>Implemented lcons_shutdown destructor to automatically purge the console
   list and close FDs on exit.</li>
<li>Fixed password buffer leak by using in closeIO, correctly matching
   the mmap allocation in shm_malloc.</li>
<li>Added cleanup for pwprompt in closeIO.</li>
</ul>
</li>
<li>Elimination of Dangerous Type Punning:<ul>
<li>Replaced the unreliable address of the cons node pattern with a type-safe list_t lcons
   sentinel across the codebase.</li>
<li>Added <strong>attribute</strong>((may_alias)) to list_t in listing.h to prevent
   compiler strict aliasing optimizations from corrupting list traversals.</li>
</ul>
</li>
<li>I/O Responsiveness and Stability:<ul>
<li>Removed tcdrain() from the high-frequency epoll_console_in path to
   eliminate daemon freezes during heavy output.</li>
<li>Updated consinitIO to ensure CON_SERIAL devices remain in O_NONBLOCK mode,
   preventing freezes on slow serial lines.</li>
<li>Extended the tcdrain skip-list in closeIO to include CON_SERIAL,
   ensuring a hang-free shutdown.</li>
</ul>
</li>
<li>Architectural Improvements:<ul>
<li>Redesigned shm_malloc to use a tiered mapping strategy:
   prefers file-backed shared memory in /dev/shm with a graceful fallback to MAP_ANONYMOUS.</li>
<li>Optimized listing.h with always_inline attributes, __builtin_prefetch
   for cache efficiency, and list poisoning for safer debugging.</li>
</ul>
</li>
</ol>
</li>
</ul>
</li>
<li>Update to version 2.41:<ul>
<li>The <strong>attribute</strong>((noreturn)) for error() in libconsole.h added</li>
<li>The variable err with 0 initialized in thread_poll()</li>
<li>The variable cp.parity with {0} initialized in readpw()</li>
<li>feat(blogd): handle pending systemd password requests on coldstart</li>
<li>Initialize console pointer list as well</li>
<li>Check peer credentials before reading command</li>
<li>Make isinteger() string check usable for all architectures</li>
<li>Add some comments about warnings and translation for S390</li>
</ul>
</li>
<li>Update to version 2.40:<ul>
<li>Protect password data stream on 3270 console as well:<ul>
<li>On S390 the 3270 console is also logged and the passwords,
  even if hidden on the 3270 console, would be logged as well.</li>
</ul>
</li>
</ul>
</li>
<li>Update to version 2.39:<ul>
<li>New feature to protect passwords to be logged:<ul>
<li>On S390 now blogd use for 3215 console the command #CP SPOOL CONSOLE STOP
  to stop logging the plain password at prompting for the password.</li>
</ul>
</li>
</ul>
</li>
</ul>



    

    <h2>Patch Instructions:</h2>
    <p>
        To install this SUSE  update use the SUSE recommended
        installation methods like YaST online_update or "zypper patch".<br/>

        Alternatively you can run the command listed for your product:
    </p>
    <ul class="list-group">
        
            <li class="list-group-item">
                SUSE Linux Micro 6.2
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-SL-Micro-6.2-1178=1</code>
                    
                    
                
            </li>
        
    </ul>

    <h2>Package List:</h2>
    <ul>
        
            
                <li>
                    SUSE Linux Micro 6.2 (aarch64 ppc64le s390x x86_64)
                    <ul>
                        
                            <li>libblogger2-debuginfo-2.45-160000.1.1</li>
                        
                            <li>libblogger2-2.45-160000.1.1</li>
                        
                            <li>blog-debuginfo-2.45-160000.1.1</li>
                        
                            <li>blog-debugsource-2.45-160000.1.1</li>
                        
                            <li>blog-2.45-160000.1.1</li>
                        
                    </ul>
                </li>
            
        
    </ul>

    
        <h2>References:</h2>
        <ul>
            
                
                    <li>
                        <a href="https://bugzilla.suse.com/show_bug.cgi?id=1264176">https://bugzilla.suse.com/show_bug.cgi?id=1264176</a>
                    </li>
                
            
        </ul>
    
</div>