Skip to content

File object with input parameter long #142

@CharlesPoletowin

Description

@CharlesPoletowin

The File object's readat and writeat function could not use long parameters.

The problems are as followed:

User traceback:

Exception (with type 'exceptions.OverflowError'): Python int too large to convert to C long

The test file is as followed:

if "test.txt" in listfiles():
  removefile("test.txt")
myfile=openfile("test.txt",True)  #Open a file
myfile.writeat("1234", 0)
data = myfile.readat(2**32, 0)
myfile.close()

However from the file https://github.com/SeattleTestbed/docs/blob/master/EducationalAssignments/SetMaxFileSizePartOne.md#building-the-security-layer

It seems it should allow long type in all the functions including setmaxfilesize, writeat, readat.

# The code here sets up type checking and variable hiding for you.  You should not need to change anything below here.
sec_file_def = {"obj-type":SecureFile,
                "name":"SecureFile",
                "setmaxfilesize":{"type":"func","args":(int,long, type(None)),"exceptions":Exception,"return":(type(None)),"target":SecureFile.setmaxfilesize},
                "writeat":{"type":"func","args":(str,(int,long)),"exceptions":Exception,"return":(int,type(None)),"target":SecureFile.writeat},
                "readat":{"type":"func","args":((int,long,type(None)),(int,long)),"exceptions":Exception,"return":str,"target":SecureFile.readat},
                "close":{"type":"func","args":None,"exceptions":None,"return":(bool,type(None)),"target":SecureFile.close}
           }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions