MySQL facepalm, avagy próbálkozz sokszor, sikerülni fog!

 ( zeller | 2012. június 12., kedd - 10:14 )

Röviden:

$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
mysql>

CVE-2012-2122 tessék frissíteni! Már ahol van friss, javított verzió.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nekem nem mukodik.

Feljebb tettem egy linket. HTH.

--
trey @ gépház

A CVE -ben valamilyen szinten részletezve van, a lényeg, hogy nem minden MySQL példány sebezhető.

--
http://neurogadget.com/

Igen, kozben rajottem.
Hirtelen nem is talalok olyat, amelyik igen.

tompos

Én is végignéztem az összes gépet (különböző Ubuntu verziók 11.04-től felfelé, 32-64 bit vegyesen), egyiken sem ment, pedig a metasploitos bejegyzés szerint x64-es Ubuntun megy. Aztán megnéztem, de a ma reggeli automatikus frissítésekkel már jött új mysql-server.

Nekem se "működik" Gentoo, Debian több változata

Az egészben az a szép, hogy ez nem is MySQL bug, hanem GCC.

"This flaw was rooted in an assumption that the memcmp() function would always return a value within the range -127 to 127 (signed character). On some platforms and with certain optimizations enabled, this routine can return values outside of this range"

Ha valaki nem tudná, a memcmp, memset és társaik nem libc hívások, hanem a gcc által optimalizált inline makrók.

A man memcmp szerint a return value integer. A (POSIX, C99, valami) szabvány szerint nem azt kellene visszaadnia? Mert ha igen, akkor mégiscsak MySQL bug, a gcc nem ígérte, hogy signed char-t fog visszaadni.

+1

A linux man nem részletezi, de pl MacOSX-en elvileg az vagyon írva hogy:
"The memcmp() function returns zero if the two strings are identical, oth-
erwise returns the difference between the first two differing bytes
(treated as unsigned char values, so that `\200' is greater than `\0',
for example). Zero-length strings are always identical."

Azaz jelen esetben a visszatérési érték -255,255 között lesz...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

"To my knowledge gcc builtin memcmp is safe, BSD libc memcmp is safe. Linux glibc sse-optimized memcmp is not safe, but gcc usually uses the inlined builtin version."

A memcmp visszatérési értéke int.
A my_bool pedig typedef char my_bool; (mysql.h)
Nem értem, miért a gcc hibája. Olyan nehéz volt leírni, hogy "== 0", a memcmp végére?

Ezt én sem értem.
Elég nagy baj a XXI. században, hogyha visszakapok egy bitkupacot, azt úgy értelmezem, ahogy kedvem tartja: ha akarom, bool, ha akarom, karakter (betű, szám, írásjel), ha akarom, szám, ha akarom, pointer...

És erre nem jó válasz az, hogy a programozónak tudnia kell, mit csinál. Szemmel láthatóan a gcc-sek/libc-sek is tudták és a MySQL-esek is tudták, mégis valahol eltévedt az információ.

Azon már csak mosolygok, hogy a C++ csúcstechnikában még mindig nincs interfész és absztrakt class (mint nyelvi elem).

Fuszenecker_Róbert

szerintem itt a mysql-esek baszarintották el. valszeg valaki azt hitte, hogy a my_bool az int, vagy hogy igazi bool típus...

"Azon már csak mosolygok, hogy a C++ csúcstechnikában még mindig nincs interfész és absztrakt class (mint nyelvi elem)."

Nincs is rá szükség. Abstract metódusokat lehet írni, ha nem valósítasz meg egy ilyen metódust, a compiler szól. Interface-t meg tudsz írni úgy, hogy csak absztrakt metódusai vannak. Mivel van többszörös öröklés, ezért nincs különbség aközött, hogy több interface-t valósítasz meg, vagy több osztályból örökölsz.

Igaz, emiatt nyelvi szinten elveszik az az információ, hogy egy osztály class, abstract class, vagy interface, de ezt a hiányosságot lehet pótolni megfelelő elnevezések használatával (amit egyébként akkor is illik alkalmazni, ha a nyelvben meg vannak különböztetve ezen osztályok).

Taknyolás.

Tulajdonképpen nem is kellenek absztrakt fogalmak, kódolhatnánk mind a mai napig gépi kódban, majd átadunk minden... (hát függvénynek ugye nem) szubrutinnak egy memóriacímet, ahova dolgozhat, és majd az R0 regiszterben visszaad valamit, amit majd valahogyan értelmezünk.

Természetesen mindent meg lehet oldani. De ha valaminek az a célja, hogy egy interfészt definiáljon, akkor az legyen mondjuk (nem leszek túl fantázisdús) interfész. És ugyan, támogassa már a nyelv, hiszen nem elveszünk a specifikációból, hanem hozzáteszünk.

Alapvetően a bajom azzal van, hogy 2012-t írunk, és teljesen úgy érzem magam, mint 1986-ban. Nem értem ezt a maradiságot (úgy, hogy én nagyon is konzervatív vagyok).

Fuszenecker_Róbert

dafuq did i just read

Szerintem a C-ben és a nagytesójában pont az (is) a jó, hogy eggyel közelebb vannak még a hardveres világhoz, mint a C# vagy a Java és barátaik. Ha valahol gondot jelent az általad hiányolt nyelvi elemek hiánya, akkor oda egyszerűen nem a C++ a megfelelő eszköz.
Nekem eddig az a tapasztalatom, hogy ha C-hez, C++-hoz nyúlok, azt általában azért teszem, mert teljesítményt akarok. Ekkor viszont előbb-utóbb ugyanezen okból úgyis nekiállok felrugdosni az OO-s szabályokat. Onnantól meg szerintem már szinte mindegy.
Szerk.: amúgy mi az, hogy nem jó válasz, hogy a programozónak tudnia kell, mit csinál? Ennyi erővel azt is mondhatnád, hogy a memóriakezelés ismerete is felesleges, mert vannak GC nyelvek.

C++ szabvány type casting:

http://www.cplusplus.com/doc/tutorial/typecasting/

Standard conversions affect fundamental data types, and allow conversions such as the conversions between numerical types (short to int, int to float, double to int...), to or from bool, and some pointer conversions. Some of these conversions may imply a loss of precision, which the compiler can signal with a warning. This can be avoided with an explicit conversion.

Nálam a gcc mélyen hallgatott arról, hogy az unsigned long-ot char-ba másoltam, pedig szerintem a C++ szabvány nem is engedi meg. Legalábbis az én olvasatom szerint.

(Tudom, hogy eredetileg C-ről volt szó, de hanyattvágott a gcc C++ automatikus konverziója)

gcc -ansi &| -Wconversion
különben nem szól az ilyen minor castokra...sajnos.

Kipróbáltam:

a -Wconversion szól akkor, ha az érték megváltozhat,
a -Wsign-conversion akkor, ha előjelváltás történhet (negatív-pozitív).

Alapból mindkettő tiltva van, pedig gondolom a probléma elkerülhető lett volna, ha a MySQL engedélyezi őket.

Azt nem értem, miért nem fordítva van? Alapból az összes fontos figyelmeztetés aktiválva legyen, ami esetleg nem kell, azt majd a fejlesztő esetleg deaktiválja..

hát... -Wall -Wextra

es -Werror, nem is ertem hogy lehet ezek nelkul build-nek nevezni egy build-et

--
NetBSD - Simplicity is prerequisite for reliability

en a warningokat is javitom, ezert nem szoktam hasznalni

-pedantic FTW (meg lehet nézni hány warningot dob így a fordító egy átlagos FLOSS projektnél ;)

hah, kedvencem :)

Csak ez megint a fejlesztő bevitele a rekettyésbe: a -Wall egy jóérzésű programozóban azt a képzetet kelti, hogy minden (ALL) warning/Warnung ki lesz jelezve.

Ezek szerint van az "mindennél" még több.

Ez pont olyan, mint az "optimálisabb" szó. Ha valami optimális, azaz a legjobb, akkor attól nincsen jobb, különben más nem lehet optimális, azaz nincsen alapja az összehasonlításnak.

Fuszenecker_Róbert

hol húzod meg a határt, hogy miért szóljon?

Csak tipp:
-Wall -Wextra -Werror -pedantic

Egyszerű: a -Wall *mindenért* szóljon, ami futás idejű problémát jelenthet.

Fuszenecker_Róbert

Pont ez történik. Csak mindenkinek mást jelent a "probléma" amiért szólnia kellene a fordítónak.

A -Wall -Wextra-ban ezek nem voltak benne (legalábbis az én gcc-mben).

http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

-- törölve --

Nézd, nem vagyok menő C programozó, mert a nyelvet nem kifejezetten szívlelem.

Nem óhajtok trollkodni, de ebben a hibában szerintem a C az összes nyavalyájával nyakig benne van.

Más nyelvekben ez elképzelhetetlen lenne.

Unix használatával könnyedén megoldhatók olyan problémák, amelyek más rendszerekben fel sem merülnek.

Ezt eltettem. Kösz :)

Mondják az utálók. Én többször dolgoztam vegyes környezetben, és sokszor láttam olyat, hogy egy-egy probléma esetén a Windows-os kollégák csak szomorúan néztek, és gondolkodtak, hogy honnan lehetne erre a feladatra leakasztani egy célszoftvert, mert ott nincs más út. Én meg unix parancssori eszközökkel és egy kis shell scripttel megoldottam egy órán belül. A vicces kijelentésed úgy lenne korrekt, ha kiterjesztenéd azokra a problémákra is, ami más rendszerekben is felmerül és nagyon nehezen megoldható.

a Windows-os kollégák csak szomorúan néztek, és gondolkodtak, hogy honnan lehetne erre a feladatra leakasztani egy célszoftvert, mert ott nincs más út. Én meg unix parancssori eszközökkel és egy kis shell scripttel megoldottam egy órán belül.

Ott nincs más út? A Windowsra nincsenek parancssori - akár unix shell - eszközök?

Ne nézd már madárnak az embereket...

Láttál te már Windows-os informatikusokat? Mert én elég sokat. Én sose láttam egyet se, akinek eszébe jutott parancssori eszközökkel megoldani egy problémát. Értem, hogy lehetséges, csak nem jellemző (finoman szólva). Egyébként pedig vicces azt mondani, hogy Windows alatt is megoldható egy probléma unixos eszközökkel. Hát ja. Azokkal valóban megoldható.

Nem. Azt írtad, hogy "nincs más út", csak "leakasztani egy célszoftvert". Ekkora ferdítést nehéz figyelmen kívül hagyni.

A félreértelmezés nagyon megy. Évek óta látom, de eddig még nem sikerült személyesen megtapasztalnom. Na majd most :)

Fussunk neki újra. Milyen eszközökkel lehet Win alatt megoldani egy problémát? Céleszközökkel. Mert az oprendszer lényegében nem ad semmit a kezedbe. Azt mondod, hogy ott is lehet parancssori eszközökkel. Igen, lehet, ha felteszed őket, mert a rendszer alapból nem támogatja. Tehát célszoftvert telepítesz.

Másrészt mivel az alap rendszer nem tartalmazza (ellentétben a unixokkal), így az ottani informatikusoknak eszébe sem jut, hogy ilyesmiket használjanak. Szerintem megáll amit mondtam.

Ami nagyon megy az nálad a ferdítés.

Milyen eszközökkel lehet Win alatt megoldani egy problémát? Céleszközökkel. Mert az oprendszer lényegében nem ad semmit a kezedbe.

false statement

Azt mondod, hogy ott is lehet parancssori eszközökkel. Igen, lehet, ha felteszed őket, mert a rendszer alapból nem támogatja.

false statement

Másrészt mivel az alap rendszer nem tartalmazza (ellentétben a unixokkal), így az ottani informatikusoknak eszébe sem jut, hogy ilyesmiket használjanak.

A "nincs más út" és a "leakasztani egy célszoftvert" után szép lassan közelítünk az igazság felé, amit így kellett volna megfogalmaznod:

'az én balfasz Windowsos kollégáim nem tudták megoldani'

Mindjárt másképp néz ki a leány fekvése.

Az nem érv, hogy "Neked nincs igazad.". Még akkor se, ha nagyjából angolra fordítod. Inkább érveljünk. Nekem napi szinten többször jön elő olyan feladat, melyet valahogy így oldok meg:

prompt$ cut -d':' -f4 users.csv | sed 's/.*"\([^"]*\)".*/\1/' | sort | uniq -c | sort -nr | head -n 20

Ezt hogy lehet a legelterjedtebb Windows rendszeren megoldani? Na jó, lehet akár Win7 is, bár én céges környezetben főleg XP-t láttam, szóval az lenne az igazi megfejtés...

Most csak konkrétan pont a feladatot nem mondtad el. Az, hogy te a Windowst úgy akarod kezelni, mintha Linux lenne, az szerintem nem a Windows problémája.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

A feladat az, hogy egy csv állomány bizonyos mezőjének rész-sztringjének értékeinek számosságát összegezni és abból a húsz leggyakrabb előfordulást megmutatni azok számosságával. Ez nem hajánál fogva előrángatott példa, nálam legalábbis a mindennapokban sokszor előkerül ilyen jellegű feladat. Már csak az érdekesség kedvéért kíváncsi lennék a PowerShell megoldásra (ami egyébként tudomásom szerint nem része a Win XP-nek), ha valaki ide tudná írni, kérem! Érdekes, hogy sokat hallottam a PowerShell-ről, de nem láttam még egy embert se, aki a tantermen kívül használta is...

Ez még mindig nem a feladat, hanem a te megoldásod részletezése. Honnan jön a CSV-be az adat? Mire kell ez a lekérdezés?

"egy csv állomány bizonyos mezőjének"

Oké, innen kezdve, már nem cut-hoz nyúlnék. (CSV mióta :-vel van elválasztva?)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

lényegesen elegánsabban megoldható a probléma powershellel (import-csv)

Kérem, mutasd meg, hogy hogyan! Én nagyon szívesen megnézném, tanulnék...

Ha tenyleg tanulni akarnal, megnezned magad.

Egyekbent itt van ra pelda:
http://technet.microsoft.com/en-us/library/ee176874.aspx

Ha lusta lennel elolvasni, ez a bemenet:

Name,Department,Title
Pilar Ackerman,Research,Manager
Jonathan Haas,Finance,Finance Specialist
Ken Myer,Finance,Accountant

Feladat: osszes sort kivalasztani, ahol a department oszlop 'Finance'.

Import-Csv c:\scripts\test.txt | Where-Object {$_.department -eq "Finance"}

Csinald meg ezt bash-el ugy, hogy az oszlopok sorrendje nem fix, tehat nem feltetlen name,department,title, hanem lehet name, phone, title, department is. PS alatt ugyanigy nez ki, bash alatt csunyabb.

Nem mintha nem szeretnem nagyon a bash-t, tenyleg szuper eszkoz, de PS-ben ugyanugy meg tudsz csinalni mindent. Van, ami az egyikben csunyabb, van, ami a masikban.

----------------------
while (!sleep) sheep++;

users.csv: (utf-8)
"Lorem ipsum":"Sára":1:100
"dolor sit amet":"Manó":2:200
"consectetur adipiscing":"Rebeka":3:300
"elit":"Sára":4:400
"Aenean nulla":"Sára":5:500
"ligula":"Slomó":6:600
"rhoncus et semper":"Sára":7:700
"vitae":"Rebeka":8:800
"tempus nec":"Rebeka":9:900
"ante":"Sára":10:1000
"Donec":"Slomó":11:1100

PS> import-csv -header Jami,Name,Fisz,Fasz -delimiter : users.csv |
>> group Name -noelement |
>> sort Count -desc |
>> select -first 3
>>

Count Name
----- ----
    5 Sára
    3 Rebeka
    2 Slomó

kerlek ne zavard ossze vacak windowsok cuccokkal, hiszen o verbeli shell-huszar!

Köszönöm szépen. Ezek szerint van aki tényleg meg tudja csinálni, és nem csak ismételgeti, hogy meg lehet csinálni. Már kezdtem elveszteni a hitem. :D

----8<--------------------
prompt$ cut -d':' -f4 users.csv | sed 's/.*"\([^"]*\)".*/\1/' | sort | uniq -c | sort -nr | head -n 20

PS> import-csv -header Jami,Name,Fisz,Fasz -delimiter : users.csv | group Name -noelement | sort Count -desc | select -first 3
----8<--------------------

Szerintem a második megoldás olvashatóbb.
Első ránézésre legalábbis.
Ami fontos lehet a kód karbantarthatósága miatt.

Fuszenecker_Róbert

Igazad van, bár megjegyzem, hogy az elsőben van egy reguláris minta illesztés, és attól olyan csúnya, ha az nincs, akkor már szebb. És ha szépségversenyre küldeném, akkor hosszú opciókat használnék:

cut --delimiter=':' --fields=4 users.csv |
sort | uniq --count | sort --numeric-sort --reverse |
head --lines=20

Mondjuk annak, aki gyakran használ ilyet, a korábbi, rövid verzió kényelmesebben olvasható :)

Most már ez is tetszik :-) Jól olvasható, követhető.
Az a baj, hogy nem feltétlenül az javít majd bele, aki írta a kódot.

Fuszenecker_Róbert

Nézz meg egy egyszerűbb feladatot: az ls (a má$ik oldalon dir) kimenetének a feldolgozása :)

És akkor most dobjuk fel a feladatot azzal, hogy átvariáljuk a mezők sorrendjét, vagy teszünk bele egy többsoros adatot tartalmazó mezőt.

Mert látom, az az apróság, hogy a PS nem karakterkupacokkal dolgozik, az elkerülte a figyelmed.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Igen, el kell ismerni, ez zseniális.
Mármint az, hogy nem karakterek jönnek-mennek, hanem komplett táblázatok.

Fuszenecker_Róbert

Mondjuk úgy, objektumok.

Ugyanúgy ahogy mindennek, az előnyök mellett hátrányai is vannak. Pl az, hogy minél célspecifikusabb valami, annál kevésbé lehet általánosságban használni - vagyis annál több eszközt kell ismerned a kapcsolóival / fejben tartanod teljes egészében, ha minél általánosabb feladatokat akarsz lefedni.

Programozói szemszögből Unix-okon a mindig text és karakter feldolgozás mindenütt elv éppen ezért olyan szempontból nagyon hasznos, hogy kreatívabb és szabadabb tudsz lenni vele. Az van, hogy meg kell húznod a poti méterét a "kényelemesebb + több specifikus tool + több infó szükséges" között és a "kevesebb tool + kevesebbet tudnak + több általános probléma megoldhatósága" között. Nem jobb, csak másmilyen.

Szerintem amikor azon megy a fapfap, hogy kell legalább 2-3 plusz eszköz ahhoz, hogy egy strukturált adatformátumot strukturáltan ki tudd bányászni ahelyett, hogy egyből egy feldolgozható struktúrában kapod/adod az adatot.

Szóval azt nem nevezném innovációnak, hogy ahhoz kell "kreatívnak" lenni, hogy egyáltalán össze tudd kötögetni az egyes toolokat.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

A 70-es években a szövegbogarászás modern-haladó dolog volt. Űrtechnika. A lyukkártyához képest tutira.
De azóta eltelt néhány esztendő.
Vannak sokkal hatékonyabb/produktívabb megoldások a piacon.
Nem mindenki óhajt lépést tartani a fejlődéssel. Biztos vannak emberek, akik mind a mai napig lúdtollal írnak.

Fuszenecker_Róbert

Hint: Excel. Nem, nem az OS része, ellenben megoldható vele a feladat. De akár egy Libre/OpenOffice is képes rá. Az OS-nek a feladata mi is? Ütemezés, erőforrás-allokáció, hardver kezelése - csv-feldolgozás nem.

Nézd már meg, hogy honnan indult ez az egész beszélgetés!

De még mindig nem mondtad el, hogy mit akarsz csinálni. Eddig ott tartunk, hogy táblázatkezelés a feladat.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Ha már ennyire precízen tudni akarod, tűzfal vagy egyéb szerver logok gyors, előzetes elemzése valamely probléma feltárására. Csak gondoltam, hogy kissé absztraktabban fogalmazom meg a kérdést, mivel ez a fenti probléma nagyon sokféle feladatnál előjön.

Értem, szóval ahelyett, hogy a szoftvert megírták volna rendesen és adnak hozzá normális céleszközöket, amellyel fel tudnád tárni a problémát, inkább külső eszközökkel kell maszatolni.

Ezt nem nevezném túl innovatívnak.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Ezen a válaszon sokat gondolkodtam ma, és lenne egy kérdésem. Ha az oprendszernek csak az ütemezés, az erőforrás allokáció meg a hw kezelése (meg persze még sok-sok alapfunkció, de semmi speciális) akkor mi 10G benne? Én ezt halál komolyan nem értem. Felteszek egy Ubuntu-t, az legfeljebb 3G és van benne irodai szoftver, meg fotókezelő, zenelejátszó, levelező, böngésző, és még néhány hasznos segédprogram.

Felteszel egy szoftvergyűjteményt, aminek a neve az, hogy Ubuntu, ami tartalmaz egy Linux operációs rendszert és egy rakat segédprogramot, alkalmazást, és fölösleges lomot is bőséggel :-)

'az én balfasz Windowsos kollégáim nem tudták megoldani'

^This.

-----------
"Generally, Russian technology assumes dumb machines and smart humans, not the other way around." -- The Russian Tea HOWTO

XP alaptelepitoben benne van?
Kattingatással működtethető?

Ha bármelyikre nem-et mondtál, fölösleges is tovább pazarolni a bájtokat.

Júj, atyaúristen, le kell tölteni egyszer, aztarohadt. A Zaptget magától telepít mindent!!4444 (FYI: W7-ben alapból benne van, talán még a Vistában is.)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Mert bizonyos feladatok megoldását de facto powershellben találták ki. A kattintódroidok meg menjenek kapálni - ahova valók.

Szinte meg sem merem említeni, hogy windows update-ről is telepíthető XP alá.

Hélóheló! Az XP óta eléggé sokat változott a világ - a Windows-os is. A kattintásfétist ott is illendő elfelejteni.

Illendő...lenne, de még kettőezertizenkettőben is van, aki rácsodálkozik, hogy a zászlógomb a billentyűzeten a start menüt nyitja meg, bármikor(!). A context-menu gomb a keyboardon meg már mindennek a csimborasszója. A printscreen gombra ki se térek. Arra meg végképp nem, hogy a win8 már tapira optimalizált, s tableteken nincs billentyűzet --> kattintásfétis.

Ja hogy a shell "Kattingatással működtethető"? A kolléga felvetése az volt, hogy nincs rá alternatíva Windowson.
Miért kéne, hogy benne legyen egy 11 éves rendszerben? Azóta volt több új termékük is... Az NVIDIA/AMD drivered része az alaptelepítőnek?

De akkor ott a VBScript mint alternatíva.

olvasd el újra, hol mondtam, hogy kattingatássla működtethető? az egy kérdés volt, kérdőjellel a végén.
vbscriptet meg kb pont ugyanannyian tudják használni (ha nem kevesebben), ahányan a cmdline-t.

a videokártyád mióta része az oprendszerednek?

A hardver kezelése sokkalta inkább OS feladat, mint a csv matyizás...

igazat adok neked, ha az OS alatt főleg a hal-t és a kernelt érted.
de ebben a postban az os-ről, mint ui, shell, user app hordozó van szó.
mondjuk emiatt meddő is a vita.

Írtam a srácnak egy alternatívát Windows alatt a shellre. Ha mindenképpen szeretnél belekötni, akkor legalább olyan dolgot írj ami egy összehasonlítási alap lehet a másik oldallal szemben. Az a kérdés, hogy lehet-e benne kattintgatni az egy baromság, mert a shell-ben sem lehet kattintgatni, nem is volt szempont. Sajnos ilyen hülye kérdésre nem lehet, csak egy ironikus költői kérdéssel "válaszolni"...

A második kérdésed már inkább mondható relevánsnak. Ezért hoztam alternatívaként a VBScriptet...

"a videokártyád mióta része az oprendszerednek?" - Ezt meg akkor gondolom lezártuk.

ebben a szálban az egérfétisről volt szó, nem arról, hogy valaki egy olyna oprendszeren tud command line-t programozni, ami úgy hirdeti magát, hogy bármely hülye^Wkezdő (lásd pohártartó, pedál, etc) is tudja használni.

Ezt már sokszor megkérdeztem, de soha nem kaptam rá releváns választ: ki a 'szomat érdekel, hogy milyen hülyeségeket pofáznak a marketingesek? Nehogy már az legyen releváns egy vitában.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

az egységsugarú Béla a médiamarktban a marketing alapján veszi a windowsos fujitsu siemens-t a susés dell helyett.

máshogy mondom:

Az, hogy te értesz hozzá, még nem jelenti azt, hogy más is.

A Dell cuccon nem Ubi figyel véletlenül?

Attól, hogy egy halom Linuxosnak parancssor fétise van, az egyrészt nem jelenti azt, hogy Windowson az összes létező feladatot azzal kellene megoldani. Már csak azért is, mert - breaking news - szimplán nem ez az elsődleges út. De lehet, hogy csak nekem nem jut eszembe egy csillag alakú csavart lapos csavarhúzóval becsavarni, ha nem muszáj.

Bár egyébként megjegyzem, sok esetben lehetőség van rá, ld. PowerShell vagy egy rakás MS által adott vagy szállított eszköz, csak ismerni kellene.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Pedig a powershell és a command line parancsok is baromi sokra képesek - az, hogy bizonyos Windows-os informatikusoknak meg egér- és kattintás fétise van, az az ő bajuk: én ismerek olyat, akinek természetes dolog a parancssori eszközök meg a powershell használata.

Merről lehet kihasználni? Csak shellen vagy akár php-ból is kihasználható?

Barmely oldalrol, ahonnan mysqlhez tudsz authentikalni.

--
|8]

"official vendor MySQL and MariaDB binaries are not vulnerable."

Elég kicsi a valószínűsége hogy sebezhető szervert találsz.

--
GPLv3-as hozzászólás.

Hát, ha megnézed a linken, hogy mely linuxok érintettek, akkor beláthatod, hogy bőven lehetnek éles szerverek is.
A dolog valószínűleg remote is működik, szóval a sok tűzfal nélküli huszár majd kapja az ívet. Igazából egy nmap-et kell elindítani ip tartományokon, ha találsz open portot, már szórhatod is...
Várom, hogy a következő napokban hányszor fogom hallani, hogy szervereket lepucoltak :).
--
Discover It - Have a lot of fun!

"HD Moore számításai szerint tízezrével lehetnek sebezhető MySQL kiszolgálók a netre lógatva"

FreeBSD-n 5.5.20-as mysql-el nem működik az exploit :)

...ezek szerint hibás a FreeBSD-s implementáció...

G.
============================================
"Share what you know. Learn what you don't."

Fordítottam gcc-vel egy memcmp-t. Alapból egy kegyetlen lassú szart pakol bele, ami 1,0,-1 értékekkel tér vissza.

    movl $.LC0, %esi
    movl $.LC1, %edi
    movl $5, %ecx
    repz
    cmpsb
    seta %al
    setb %dl
    subb %dl, %al

Gondolom optimalizáltak valamit, mert ugye 8-byte-onként is össze lehetne hasonlítani, nem muszáj egyesével küzdeni.

:)

Fyi, az h melyik megoldas hatekonyabb, erosen fugg a felhasznalas modjatol. Kis meretu tombokre a rep cmpsb/stosb/movs (ha ismert a hasonlitani kivant tombok hossza es az oszthato kettovel/neggyel, akkor ezen megfelelo parjaik) jobb, mint a simd optimalizalt valtozat.

---
pontscho / fresh!mindworkz

A glibc-nek saját memcmp-je van, először nézi a méretet, utána dönt az összehasonlítás módjáról.
Ez 2 utasítás overhead (ha len < X) kis tömbök esetén.

Nem az volt a problema, h a memc??() mit muvel, hanem, h miert repcmpsb van ott es nem agyon simdelt cucc.

---
pontscho / fresh!mindworkz

meg asszem alignedness-t is néz

Attol fuggetlenul meg igy sem tul sikeres. Egy normalis mmx implementacio nagyobb (>8k) bufferre atlagosan 2x gyorsabb, mint amire a glibc/gcc verzio kepes.

---
pontscho / fresh!mindworkz

aki nem szarozik azzal, hogy ezen is gyorsítson, annak jó.
aki meg ezen is gyorsítani akar, az úgyis kitalálja :-)

Egyszer írtam egy PERL kódot, ahol regexp-pel parsoltam 1-2 megás fájlokat.
Az idő 98.5%-ában memcpy-zott, a maradék 1.5%-ban dolgozott is.

Szóval ebben az esetben egy optimalizált memcpy 3x-osára növelhette volna a sebességet.

(A megoldás az lett, hogy kisebb dinamikus méretű ablakokon futtattam a regexp-et (~100 byte), mert az idióta PERL mindig memcpy-zta a puffert. Kb. 30-szorosára nőtt a sebesség.)

tehát kitaláltad :)

attól, hogy nem tudsz úszni, még nem a víz a hülye :)