cmeerw

joined 2 years ago
 

This is a status update on improvements currently in progress for hardening and securing our C++ software.

 

For the big brain 10,000 meter view, defer ⸺ and the forthcoming TS 25755 ⸺ is a general-purpose block/scope-based “undo” mechanism that allows you to ensure that no matter what happens a set of behavior (statements) are run.

 

Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings.

 

Emacs 30.1 includes security fixes for a shell injection vulnerability in man.el (CVE-2025-1244), and for arbitrary code execution with flymake (CVE-2024-53920). We recommend upgrading immediately.

 

There's no perhaps about the FBI and CISA getting snippy at buffer overflows. These people worry about exploits that threaten car-crash incidents in enterprise IT, and they've seen enough to get angry. It's not that making mistakes is a crime when writing code. No human endeavor worth doing is without error. It's more that this class of bug is avoidable, and has been for decades, yet it pours out of big tech like woodworm from a church pew. Enough already, they say. They are right.

 

On Saturday, the ISO C++ committee completed the second-last design meeting of C++26, held in Hagenberg, Austria. There is just one meeting left before the C++26 feature set is finalized in June 2025 and draft C++26 is sent out for its international comment ballot (aka “Committee Draft” or “CD”), and C++26 is on track to be technically finalized two more meetings after that in early 2026.

 

It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability. Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource management, life-time management, error-handling, modularity, and generic programming. At the end, I present ways to ensure that code is contemporary, rather than relying on outdated, unsafe, and hard-to-maintain techniques: guidelines and profiles.

 

With P2900, we propose to add contract assertions to the C++ language. This proposal is in the final stages of wording review before being included in the draft Standard for C++26.

 

Full-text search engine for the C++ Working Draft (and older versions from Tim Song's repository)

 

The NetBSD Project is pleased to announce NetBSD 10.1, the first point release of the NetBSD 10 stable branch.

 

On Saturday, the ISO C++ committee completed the third-last design meeting of C++26, held in Wrocław, Poland. There are just two meetings left before the C++26 feature freeze in June 2025, and C++26 is on track to be completed two more meetings after that in early 2026. Implementations are closely tracking draft C++26; GCC and Clang already support about two-thirds of C++26 features right now.

[–] cmeerw@programming.dev 1 points 1 year ago

Yes, it's not Open Source, but I am not sure that's really relevant here. I see it more as a prototype implementation for something that could be standardised for C++.

[–] cmeerw@programming.dev 4 points 1 year ago

The linked tweet links to the recording, but it has apparently also been uploaded to YouTube: https://youtu.be/5Q1awoAwBgQ

[–] cmeerw@programming.dev 8 points 1 year ago

Also the location of known Wifi networks.

[–] cmeerw@programming.dev 10 points 2 years ago

Embracing the GC

I never actually liked the GC in D as it didn't seem to fit in with the general direction of the language, and Walter Bright in D at 20: Hits and Misses says:

Miss: Emphasis on GC

[–] cmeerw@programming.dev 1 points 2 years ago

There is also lowendspirit, but in both cases you have to be very careful what you buy - not everything that is advertised there will work as advertised or will work long-term

[–] cmeerw@programming.dev 1 points 2 years ago

where they will double your monthly data limit for free when you comment your order number.

where they use you to spam the forum thread (for giving away something rarely anyone has any use for)

[–] cmeerw@programming.dev 4 points 2 years ago (1 children)

So they actually rewrote The Hurd in Rust.

[–] cmeerw@programming.dev 3 points 2 years ago

Prepare for a humongous inrush of spam before servers patch this one.

But it's already patched by GMX and Microsoft.

As far as I understand it, it doesn't affect single mail servers, but only mail systems where you have separate inbound and outbound servers and the outbound servers trust the data they get from the inbound servers.

[–] cmeerw@programming.dev 2 points 2 years ago

Not sure how many get the joke in "Figure 23: Typical Austrian reaction after receiving a spoofed e-mail":

OIDA

😂

[–] cmeerw@programming.dev 3 points 2 years ago (4 children)

There is no reason to “hate” Ubuntu but there are better choices.

What are those better choices then (for those who currently use the non-LTS Ubuntu releases and don't want to move to rolling releases or LTS-only releases)?

[–] cmeerw@programming.dev 6 points 2 years ago

I still think Ubuntu is the best option (particularly if you want to use the non-LTS releases)

Having said that I do hate snaps and also dislike flatpaks. So what I do is just use the Firefox deb package from the PPA and the chromium package from Linux Mint. Oh, and I have actually replaced ubuntu-advantage-tools with a no-op dummy package.

[–] cmeerw@programming.dev 3 points 2 years ago

Only issue is they’re stored in my server as belonging to the server user (I assume everything in those directories should belong to root and I can just use chown?) But I also don’t know if they retain the same permissions when backed up.

Not everything will be owned by root, and some of the binaries will be setuid or setgid, some might even have extended attributes (e.g. ping will usually have a security.capability attribute). /var will also have a lot of different owners.

view more: ‹ prev next ›