Re: Segfaults

2021-10-13 Per discussione Davide Prina

On 13/10/21 07:27, Diego Zuccato wrote:

Il 12/10/2021 19:43, Davide Prina ha scritto:



vedendo qui:
https://sources.debian.org/src/openblas/0.3.13+ds-3/driver/others/memory.c/ 


l'istruzione è questa:
map_address = (*func)((void *)base_address);
Uhm... Il codice usa l'array memoryalloc come lista di puntatori a 
funzione. Però poi itera gli elementi senza verificare se uno di essi è 
NULL. E l'ultimo lo è sempre (riga 2664).


se devo essere onesto mi sono un po' perso, anche perché non sapendo 
come sono impostate quelle variabili non si può sapere cosa memoryalloc 
contenga come elemento 0 e successivi


se non erro li viene eseguita la funzione che è stata inserita in 
memoryalloc nella posizione 0 passando come parametro base_address con 
cast void*
e memoryalloc è un vettore di puntatori a funzione che prendono come 
parametro void*... però tale lista dipende, penso, dal tuo sistema e da 
come sono configurate determinate variabili


visto che l'errore è jump to invalid address at 0x0 sembra che il 
puntatore a funzione memoryalloc[i] punti all'indirizzo 0x0 che non 
dovrebbe prima di tutto essere raggiungibile da un programma e quindi 
non dovrebbe contenere una funzione da eseguire.


Probabilmente la condizione per il while alla 2791 dovrebbe essere 
relativa a *func, non a func...


quindi tu dici il memoryalloc[i] == NULL
func -> memoryalloc[i] != NULL, poiché il suo indirizzo è quello 
relativo all'i-esimo elemento di memoryalloc, ma tale i-esimo elemento 
contiene NULL e quindi quando esegue la funzione cerca di andare 
all'indirizzo 0x0 per eseguirla


è vero l'istruzione dovrebbe essere
while ((*func != NULL) && (map_address == (void *) -1))

poiché func è sempre un elemento di memoryalloc.

Però questo vuol dire che non ha trovato nessun metodo per eseguire 
l'allocazione di memoria... quindi potrebbe avere problemi dopo, anche 
perché c'è un ciclo più esterno e quindi rieseguirebbe quello più 
interno... potrebbe essere addirittura che memoryalloc[0] == NULL perché 
nessuno degli altri è stato impostato.


Certo che comunque qualcosa non mi torna: se metto la -serial invece 
della -pthread, senza cambiare altro, octave funziona...


quindi risolvi installando libopenblas0-serial e togliendo 
libopenblas0-pthread?


interessante:
$ apt show  libopenblas0-serial
[...]
 Configurazione: USE_THREAD=0 USE_OPENMP=0 INTERFACE64=0
[...]

quindi magari bastava eseguire:
$ USE_THREAD=0 octave

o anche aggiungendo gli altri per avere octave funzionante senza segfault

Altro modo è provare a prendere da testing la versione nuova e vedere 
se questo risolve, vedendo le dipendenze dovrebbe essere possibile 
installare solo il pacchetto preso da testing

Purtroppo non risolve :(


visto che prima funzionava puoi cercare la versione della libreria che 
non causava questi problemi e capire così cosa è cambiato confrontando 
il sorgente che ti ha indicato valgrind


le versioni precedenti della libreria li trovi qui:
https://snapshot.debian.org/binary/libopenblas0-pthread/

o guardare nei sorgenti precedenti.
Però anche in Buster c'era lo stesso while
https://sources.debian.org/src/openblas/0.3.5+ds-3/driver/others/memory.c/

ma anche in Stretch
https://sources.debian.org/src/openblas/0.2.19-3/driver/others/memory.c/

quindi probabilmente non la usavi o è cambiato qualcos'altro che ha 
fatto venire a galla questo bug


Magari mi limito a segnalare la cosa al maintainer. Purtroppo è un 
sistema di produzione e non posso fare troppi test :(


ma non puoi clonarlo in una macchina virtuale e fare da li le prove?

Ciao
Davide
--
Esci dall'illegalità: utilizza LibreOffice/OpenOffice:
http://linguistico.sf.net/wiki/doku.php?id=usaooo
Non autorizzo la memorizzazione del mio indirizzo su outlook




Re: Nuovo malware per GNU/Linux (sembra una bufala!)

2021-10-13 Per discussione Davide Prina

On 13/10/21 07:49, Marco Ciampa wrote:

On Tue, Oct 12, 2021 at 07:48:07PM +0200, Davide Prina wrote:

On 11/10/21 21:48, Marco Ciampa wrote:



Di rootkit ce ne sono a bizzeffe.


ma sono tutti neutralizzati da un sistema aggiornato e da un adeguato uso
del sistema.


No i rootkit sono rootkit, non puoi neutralizzarli, stai facendo
confusione con i virus.


per potersi installare nella tua macchina un rootkit ha bisogno che tu 
abbia un software con bug, che permetta all'attaccante reale/virtuale di 
scalare fino a root, o che tu compia azioni non adeguate (es: installare 
come root software preso in giro, eseguire come root software preso in 
giro, ...)


Quindi se tu hai il sistema costantemente aggiornato e fai un uso 
adeguato del sistema, allora li hai neutralizzati, nel senso che non 
possono infettare il tuo sistema... o per la meno la maggior parte di 
essi non può, poi può esserci sempre un bug non conosciuto usato 
dall'attaccante per entrare nel tuo PC e per scalare a root.


Probabilmente è per questi motivi che in GNU/Linux il malware in 
generale ha poca diffusione e dove l'ha è perché i sistemi non sono 
aggiornati o il comportamento degli utenti non è adeguato.


Ciao
Davide
--
Elenco di software libero: http://tinyurl.com/eddgj
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook




Re: Nuovo malware per GNU/Linux (sembra una bufala!)

2021-10-13 Per discussione Mario Vittorio Guenzi


Il 13/10/21 07:49, Marco Ciampa ha scritto:

> No i rootkit sono rootkit, non puoi neutralizzarli, stai facendo
> confusione con i virus. Puoi pensare ad un rootkit come ad una specie di
> driver che una volta installato "abilita" certe funzionalità. Non mi pare
> che si possa "neutralizzare" un rootkit come non si può "neutralizzare"
> un driver, in special modo se viene compilato per una specifica versione
> o insieme di versioni del kernel.

Ni, li puoi individuare e rimuovere, non automaticamente questo si ma i
tool per indagine in tal senso ci sono, poi a seconda della situazione
agisci.


-- 

Mario Vittorio Guenzi
E-mail jcl...@tiscali.it
Si vis pacem, para bellum



OpenPGP_signature
Description: OpenPGP digital signature