Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.
pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.
Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.
… více »Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)
Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.
Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).
Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.
FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.
Access not within mapped region at address 0x0 ==26680== at 0x3BD606CD90: fwrite (in /usr/lib64/libc-2.17.so)Je mozne, ze se nekdy nejak nekorektne otevre soubor pro psani? Premyslim, v cem to muze byt. Lze kod nejak osetrit tak, aby to bylo vzdy korektni?
void send_file(char *source, char *destination) {
FILE * filer, * filew;
int numr, numw;
char buffer[1024];
if ((filer = fopen(source, "rb")) == NULL) {
perror("open read file error.\n");
//exit(1);
}
if ((filew = fopen(destination, "wb")) == NULL) {
perror("open write file error.\n");
//exit(1);
}
while (feof(filer) == 0) {
if ((numr = fread(buffer, 1, 100, filer)) != 100) {
if (ferror(filer) != 0) {
perror("read file error.\n");
//exit(1);
} else if (feof(filer) != 0);
}
if ((numw = fwrite(buffer, 1, numr, filew)) != numr) {
perror("write file error.\n");
//exit(1);
}
}
fclose(filer);
fclose(filew);
}
Řešení dotazu:
A nejsou právě problémem ty zakomentované exit-y?, tedy dle hlášky zrovna ten ve fopen pro filew.
U zapisovaného souboru je dobré kontroloval návratový kód fclose, moc se to sice nedělá, ale…
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
void send_file(const char *source, const char *destination) {
FILE * filer, * filew;
int numr;
const int SIZE_OF_BUFFER=1024;
char buffer[SIZE_OF_BUFFER];
if ((filer = fopen(source, "rb")) == NULL) {
perror("open read file error.\n");
exit(1);
}
if ((filew = fopen(destination, "wb")) == NULL) {
perror("open write file error.\n");
fclose(filer);
exit(1);
}
while (feof(filer) == 0) {
if ((numr = fread(buffer, 1, SIZE_OF_BUFFER, filer)) != SIZE_OF_BUFFER) {
if (ferror(filer) != 0) {
perror("read file error.\n");
fclose(filer);
fclose(filew);
exit(1);
}
}
if (fwrite(buffer, 1, numr, filew) != numr) {
perror("write file error.\n");
fclose(filer);
fclose(filew);
exit(1);
}
}
if(fclose(filer) != 0)
printf("read file - close error.\n");//has read-file been deleted ... ???
if(fclose(filew) != 0)
printf("write file - close error.\n");//flush C buffer fails
//fsync ????
}
int main( int argc, const char* argv[] ){
if (argc == 3 ) {
send_file(argv[1], argv[2]);
} else {
printf("Main error, two params needed (from, to).\n");
return 1;
}
return 0;
}
Tiskni
Sdílej: