Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
char a[25]="Dobrý";
char b[25]=" den";
char ab[25]= a || b;
a píše to chybu:
neco.cpp:82:36: error: array must be initialized with a brace-enclosed initializer
Řešení dotazu:
strncpy
, aby mu nepřetekl buffer.
char a[]="Dobrý"; char b[]=" den"; char ab[25]; snprintf(ab, 25, "%s%s", a, b);A třeba to převedení čísla na řetězec:
snprintf(buf, 100, "Číslo má hodnotu %i", 1000);
#define CHAR_A "Dobrý" #define CHAR_B " den" #define CHAR_AB CHAR_A CHAR_B char a[25] = CHAR_A; char b[25] = CHAR_B; char ab[25] = CHAR_AB;
char *a = "Dobrý"; char *b = " den"; char *c; c = malloc(strlen(a) + strlen(b) + 1); strcpy(c, a); strcat(c, b); // ... free(c);
const char a[] = "....";a
const char *a = "....";není ekvivalentní, viz např. dsohowto (používání bez const je pak vůbec zajímavé, a byť někdy užitečné, obecně ho nelze doporučit, pokud přesně nevíte proč a jak). Také by pole znaků narozdíl od pointerů umožnily použít sizeof() namísto strlen(), i když optimalizující kompilátor bude schopen vyhodnotit i ten strlen() staticky. Především ale proboha použij nějakou knihovnu pro práci s řetezci, která má alespoň něco jako g_strconcat() z GLib (příklad implementace takové funkce je jako concat() i přímo v manuálu glibc). Nebo string v C++ -- těžko řící, v jakém to mělo být jazyce, ale koncovka souboru je .cpp, takže by to snad mohlo být C++.
Tiskni
Sdílej: