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.
Řešení dotazu:
static int cxd2820r_tuner_i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msg[], int num) { struct cxd2820r_priv *priv = i2c_get_adapdata(i2c_adap); u8 obuf[msg[0].len + 2]; struct i2c_msg msg2[2] = { { .addr = priv->cfg.i2c_address, .flags = 0, .len = sizeof(obuf), .buf = obuf, }, { .addr = priv->cfg.i2c_address, .flags = I2C_M_RD, } };Problem nastava, kdyz je tato funkce volana z ovladace tda18271
int tda18271_write_regs(struct dvb_frontend *fe, int idx, int len) { struct tda18271_priv *priv = fe->tuner_priv; unsigned char *regs = priv->tda18271_regs; unsigned char buf[TDA18271_NUM_REGS + 1]; struct i2c_msg msg = { .addr = priv->i2c_props.addr, .flags = 0, .buf = buf }; int i, ret = 1, max; BUG_ON((len == 0) || (idx + len > sizeof(buf))); switch (priv->small_i2c) { case TDA18271_03_BYTE_CHUNK_INIT: max = 3; break; case TDA18271_08_BYTE_CHUNK_INIT: max = 8; break; case TDA18271_16_BYTE_CHUNK_INIT: max = 16; break; case TDA18271_39_BYTE_CHUNK_INIT: default: max = 39; } tda18271_i2c_gate_ctrl(fe, 1); while (len) { if (max > len) max = len; buf[0] = idx; for (i = 1; i <= max; i++) buf[i] = regs[idx - 1 + i]; msg.len = max + 1; /* write registers */ ret = i2c_transfer(priv->i2c_props.adap, &msg, 1);Protoze prave tady se realne vola cxd2820r_tuner_i2c_xfer().
static int cxd2820r_tuner_i2c_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msg[], int num) { struct cxd2820r_priv *priv = i2c_get_adapdata(i2c_adap); u8 obuf[msg[0].len + 2]; struct i2c_msg msg2[2] = { { .addr = priv->cfg.i2c_address, .flags = 0, .len = sizeof(obuf), .buf = obuf, }, { .addr = priv->cfg.i2c_address, .flags = I2C_M_RD, .len = msg[1].len, .buf = msg[1].buf, } };
A ze nebyl trivialni? To si delas srandu.I triviální patch může mít netriviální důsledky :-O
Tiskni
Sdílej: