python
def register_device(minor, pp):
    port = None
    try:
        name = f"{CHRDEV}{minor:x}" 
        port = parport_find_number(minor)
        if not port:
            raise ValueError("Port not found") 
        # ... rest of the code ...
    except (MemoryError, ValueError) as e:
        print(f"Error: {e}")
        return -1
    finally:
        if name:
            del name # Or appropriate cleanup
        # ... other potential cleanup ...
    return 0
