amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Brett vorm Kopf & ASL... [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

09.10.2003, 07:32 Uhr

ZeroG
Posts: 1487
Nutzer
Hi Leute,
Hab gerade mal wieder ein Brett vorm Kopf - kann mir jemand sagen wo hier der Wurm drin ist? Warum scheitert AddPart() hier? Der Buffer müßte doch genau passen, oder?

#include<exec/types.h>
#include<libraries/asl.h>
#include<clib/exec_protos.h>
#include<clib/asl_protos.h>
#include<clib/dos_protos.h>
#include<stdio.h>
#include<string.h>


int main()
{
struct Library *AslBase=0;
AslBase=OpenLibrary("asl.library",40L);
struct FileRequester *fr;
fr = (FileRequester*)AllocAslRequestTags(ASL_FileRequest,ASLFR_PubScreenNam e, "Workbench",
ASLFR_TitleText, "Wähle eine Datei",
ASLFR_DoPatterns, TRUE,
TAG_DONE, 0
);
AslRequest(fr,0);
ULONG FP_Size=(strlen(fr->rf_Dir) + strlen(fr->rf_File) + 1);
char FP[FP_Size];
strcpy(FP,fr->rf_Dir);
if(AddPart(FP,fr->rf_File,FP_Size)==FALSE)
printf("Buffer Overflow!!!n");
printf("%sn",fr->rf_Dir);
FreeAslRequest(fr);
if (AslBase)
CloseLibrary(AslBase);
}

[ - Antworten - Zitieren - Direktlink - ]

09.10.2003, 08:12 Uhr

gni
Posts: 1106
Nutzer
Zitat:
ZeroG:
Hab gerade mal wieder ein Brett vorm Kopf - kann mir jemand sagen wo hier der Wurm drin ist? Warum scheitert AddPart() hier? Der Buffer müßte doch genau passen, oder?

Nein, passt nicht, denn entweder hast Du den Dir-Separator vergessen oder das abschließende NUL-Byte.
Zitat:
AslRequest(fr,0);
ULONG FP_Size=(strlen(fr->rf_Dir) + strlen(fr->rf_File) + 1);
char FP[FP_Size];
strcpy(FP,fr->rf_Dir);

Ist das C++? Du solltest auch den Returnwert von AslRequest() prüfen.

[ - Antworten - Zitieren - Direktlink - ]

09.10.2003, 08:30 Uhr

ZeroG
Posts: 1487
Nutzer
Argh! Der Dir-Seperator! Da brat mir einer nen Storch! Hab mir seit anfang der Woche das Hirn zermartert...
Naja, Danke!
Es ist C++ und da ich nicht von meinem Rechner aus schreibe hab ich das Listing aus dem Kopf geschrieben und dabei alles was nicht direkt zum problem gehört weggelassen.
Nochmal vielen Dank für die promte antwort.

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Brett vorm Kopf & ASL... [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.