amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Brett vorm Kopf & ASL... [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2003-10-09, 07:32 h

ZeroG
Posts: 1488
User
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);
}

[ - Answer - Quote - Direct link - ]

2003-10-09, 08:12 h

gni
Posts: 1106
User
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.

[ - Answer - Quote - Direct link - ]

2003-10-09, 08:30 h

ZeroG
Posts: 1488
User
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.

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Brett vorm Kopf & ASL... [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved.
.