• Flavien Lebarbé's avatar
    [PATCH] usblp_ioctl for non-little-endian machines · 4e562171
    Flavien Lebarbé authored
    ioctl(LPGETSTATUS) is known to put the status into  an  int.  The  usblp
    driver has a problem in this area as it does not put it into an int  but
    into a char. Let's see :
    
    from drivers/char/lp.c : lp_ioctl :
        int status
        copy_to_user((int *) arg, &status, sizeof(int))
    
    from drivers/usb/printer.c : usblp_ioctl :
        unsigned char status;
        copy_to_user ((unsigned char *)arg, &status, 1)
    
    Even though in  most  cases  it  can  work  unnoticed  on  little-endian
    machines ;o), it's broken on non-little-endian machines (I got bitten on
    PPC).
    4e562171
printer.c 31.2 KB