 |
|
 |
 |
Ein Programmierer hat dieses zwar syntaktisch richtige Programm erstellt, doch weist es einige Sicherheitslücken auf. Machen Sie das Programm sicherer.
#include <stdio.h>
#include <string.h>
int main()
{
char name[10];
char copy[10];
printf("Dein Vorname : ");
gets(name);
strcpy(copy, name);
printf("Orginal: %s Kopie: %s\n",name, copy);
return 0;
}
Bei diesem Beispiel wurde ein klassischer aber häufig nicht gleich bemerkter Fehler gemacht.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *string = "Hallo Welt";
char *copy;
/* String kopieren */
copy = (char *)malloc(strlen(string));
if(copy == NULL)
{
printf("Speichermangel...\n");
exit(0);
}
strcpy(copy, string);
printf("Orginal: %s\n",string);
printf("Kopie : %s\n",copy);
getchar();
return 0;
}
Würden Sie in diesem Listing von einer Gefahr ausgehen? Wenn ja welcher?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
char *heap;
printf("Wieviel Speicherplatz benötigen Sie: ");
scanf("%4d",&i);
heap = (char *)malloc(i);
if(NULL == heap) exit(0);
return 0;
}
Was ist ein Memory Leak?
|
|
 |
 |
 |