Byla vydána nová verze 25.12.6 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Opravena je řada zranitelností v základních síťových službách, které jsou ve výchozím nastavení aktivní a které lze zneužít na dálku. Důrazně je doporučena aktualizace.
Český projekt mapSTL.com promění vybrané místo na světě ve 3D mapu pro tisk, včetně měst, kopců a hor. Vytištěnou mapu můžete také pověsit na zeď jako obraz. STL i barevný 3MF stáhnete zdarma a bez registrace. Vyzkoušejte své oblíbené místo a podělte se o zpětnou vazbu.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 7. a 8. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Po 9 týdnech vývoje od vydání Linuxu 7.2 oznámil Linus Torvalds vydání Linuxu 7.3. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
/*
* This function is called when /proc is written
*/
static ssize_t
procfs_write(struct file *file, const char *buffer, size_t len, loff_t * off)
{
if ( len > PROCFS_MAX_SIZE ) {
procfs_buffer_size = PROCFS_MAX_SIZE;
}
else {
procfs_buffer_size = len;
}
if ( copy_from_user(procfs_buffer, buffer, procfs_buffer_size) ) {
return -EFAULT;
}
printk(KERN_INFO "procfs_write: write %lu bytes\n", procfs_buffer_size);
return procfs_buffer_size;
}
- pokud na místo copy_from_user dám strncpy, vše (alespoň zdánlivě) funguje.All kernel code runs in the kernel virtual memory address space. There are times, that the kernel virtual memory address space contains pieces of a user process's address space. This is so that system calls can access arguments passed using pointers. A classic example are the read() and write() system calls, which need to transfer data from kernel buffers into a user process address space.

copy_to_user/copy_from_user, resp. put_user/get_user i pokud jde o jednoduché read/write jako například s /proc filesystémem?copy_to_user/copy_from_user.
Vyssie uvedeny priklad s procfs_write kopiruje data z User Space do Kernel Space pomocou copy_to_user, takze potrebuje zistit, kam "skutocne" User Space pointer ukazuje. To, ze strncpy ako tak funguje, je len zhoda nahod.
Inak povedane, ak napriklad User Space pointer buffer ukazuje na User Space adresu 123h , tak funkcia copy_from_user hovori kernelu, aby pointer buffer nebral ako pointer na Kernel Space adresu 123h (ako by to bolo v pripade strncpy).
strncpy funguje.
strncpy od userspace procesu funguje.read() z toho processu má přístup do bufferu v segmentu kernelu), ale při "zápisu" už se data musí přenášet.write() do bufferu v kernelspace z userspace aplikace. Rád se dozvědel pravdu, pokud ji někdo zná.
Tiskni
Sdílej: