Controllo lunghezza variabili - buffer overflow

di il
4 risposte

Controllo lunghezza variabili - buffer overflow

Ciao a tutti...
C’è possibilita di errori di buffer overflow in js?
Mi spiego: un Array di caratteri, almeno io, non l’ho mai definito in lunghezza come farei in C.
Quindi vien da se che scrivo a gogo... ma come posso evitare, eventuali, problemi di buffer overflow?

Ho preso un Array di caratteri come esempio ma se ne avete altri più attinenti ed esaustivi, meglio...

4 Risposte

  • Re: Controllo lunghezza variabili - buffer overflow

    Cito una risposta da stackoverflow ( https://stackoverflow.com/a/6155063/874578 ):

    Il valore teorico massimo di un array sarebbe
    2^32 - 1 = 4,294,967,295 = 4.29 miliari di elementi.
    ma questo comunque dipende dal tipo di macchina.

    Ti consiglio di leggere la risposta completa per una spiegazione piu' esaustiva.
  • Re: Controllo lunghezza variabili - buffer overflow

    In realtà buffer overflow è tutt'altra cosa, rispetto alla domanda
  • Re: Controllo lunghezza variabili - buffer overflow

    +m2+ ha scritto:


    In realtà buffer overflow è tutt'altra cosa, rispetto alla domanda
    qualora avessi un Array di 20 e in input vengono inseriti 30 caratteri si verifica un overflow della memoria allocata per quella variabile (almeno in C)
    Proprio per questo ho parlato di evitare eventuali problemi di bof.
    Ovviamente nessun compilatore fa in autormatico un controllo per evitare di bucare la memoria... ed è altrettanto ovvio che scrivere più di 4mld di caratteri ce ne vuole, ma basterebbe copiare una stringa con una semplice funzione ricorsiva e il gioco è fatto... o no?

    Non lo so chiedo... non vi è mai venuto questo dubbio???
  • Re: Controllo lunghezza variabili - buffer overflow

    rare ha scritto:


    +m2+ ha scritto:


    In realtà buffer overflow è tutt'altra cosa, rispetto alla domanda
    qualora avessi un Array di 20 e in input vengono inseriti 30 caratteri si verifica un overflow della memoria allocata per quella variabile (almeno in C)
    Quello è un buffer overflow, non quanto hai chiesto.
    Proprio per questo ho parlato di evitare eventuali problemi di bof.
    Ovviamente nessun compilatore fa in autormatico un controllo per evitare di bucare la memoria...
    E chi lo dice?
    E cosa significa "bucare la memoria" ?
    ed è altrettanto ovvio che scrivere più di 4mld di caratteri ce ne vuole, ma basterebbe copiare una stringa con una semplice funzione ricorsiva e il gioco è fatto... o no?
    No. Stai confondendo i vettori javascript con quelli C.
    Non sono la stessa cosa
    Non lo so chiedo... non vi è mai venuto questo dubbio???
    A me viene quando devo elaborare grandi quantità di dati, tipicamente risultati da database, ma non certo in javascript.
    In quel caso, tipicamente, si riduce il set, o si usano sistemi a 64 bit.
Devi accedere o registrarti per scrivere nel forum
4 risposte