[so] [Tema1][Linux] stack smash detected
Mihai Barbulescu
b12mihai at gmail.com
Tue Mar 14 21:29:50 EET 2017
Consider ca am spus sugestia mai sus: ruleaza folosind gdb exact
testul pe care l-ai rulat cu valgrind (foloseste cgdb are interfata
mai draguta).
Probabil ai bug in bucla din print_bucket cand iterezi pe lista
inlantuita, pune si tu un breakpoint pe-acolo. Ai alocat memorie pt
nodul din lista?
De asemenea, vezi ca submisia e gresita si am observat in general
greseala asta la studenti: nu trebuie sa submitesti hash.c si sa il
compilati sau sa generati biblioteca din el, cititi urmatoarea
specificatie din enunt cu maxima atentie:
Antetul funcției de hash ce trebuie folosită (în întreaga temă) este
declarat în hash.h. Definiția funcției se găsește într-o bibliotecă
dinamică (libhash.so pentru Linux, respectiv hash.dll pentru Windows).
Va trebui să linkați în tema voastră aceste biblioteci. Este interzisă
folosirea unei alte funcții hash scrisă prin surse. Nu includeți
bibliotecile în arhiva finală a temei.
IMPORTANT: bibliotecile au fost compilate folosind mașinile virtuale,
care sunt cu arhitectura pe 32-bit. Dacă dezvoltați pe mașina locală e
posibil să vă apară erori de incompatibiltate. Nu submiteți nici sursa
originală a hash.c și vă bazați implementarea pe acesta. Sursa este
oferită pentru a vă putea regenera local bibliotecile pentru
dezvoltare în cazul erorilor de incompatibilitate.
hash.c v-a fost dat ca sa puteti dezvolta pe masinile voastre ale
caror arhitecturi nu le stapanim iar masinile virtuale de so sunt
32-bit iar pe linux apare eroare wrong ELFCLASS daca nu v-am fi dat si
sursa sa dezvoltati in mediul in care va e voua usor.
2017-03-14 21:12 GMT+02:00 Ionutz Sc <ionut_sc94 at yahoo.com>:
> Intr-adevar, am folosit acea optiune si acum nu mai apare stack smashing.
> Vreo sugestie in vederea repararii problemei?
> Multumesc anticipat!
>
>
> ________________________________
> From: Mihai Barbulescu <b12mihai at gmail.com>
> To: Sisteme de Operare <so at cursuri.cs.pub.ro>; Ionutz Sc
> <ionut_sc94 at yahoo.com>
> Sent: Tuesday, March 14, 2017 9:04 PM
> Subject: Re: [so] [Tema1][Linux] stack smash detected
>
> Problema e ca ai buffer overflow și nu memory leaks. Undeva faci un acces
> peste dimensiunea stivei
>
> Poti dezactiva temporar mecanismul din gcc folosind opțiunea nepermisa
> -fno-stack-protector și sa vezi dacă dispare
>
> Valgrind nu e capabil sa detecteze asa ceva. Baga cu gdb pe acel print
> problema după ce ai compilat fără opțiunea de care zic
>
> On 14 Mar 2017 20:44, "Ionutz Sc via so" <so at cursuri.cs.pub.ro> wrote:
>
> Buna seara,
>
> Pe linux, cand testez tema cu comanda "valgrind ./tema1 256 < date.in"
> (date.in contine primele 3 linii din testul 22), valgrind nu seziseaza
> niciun leak de memorie:
> All heap blocks were freed -- no leaks are possible
> ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
> insa la output apare si *** stack smashing detected ***: ./tema1 terminated
> Nu reusesc sa-mi dau seama ce anume provoaca stack smashing-ul.
> Am testat in loc de linia cu print_bucket si cu un sir de caractere random
> de genul:
> asdadfasda asdasdasdasd asdasdasdasd
> Am observat ca daca las doar 2 cuvinte random pe acea linie, nu face stack
> smashing, doar cu 3 face.
> Multumesc anticipat!
>
> Cu stima,
> Ionut Niculici
>
> ______________________________ _________________
> http://ocw.cs.pub.ro/courses/ so/info/lista-discutii
>
>
>
--
Cu stimă,
Mihai Bărbulescu
More information about the so
mailing list