Fw: [Bugme-new] [Bug 6502] New: SIOCSIFHWBROADCAST needs compat layer

From: Andrew Morton <hidden>
Date: 2006-05-06 16:28:03


Begin forwarded message:

Date: Sat, 6 May 2006 08:24:25 -0700
From: bugme-daemon@bugzilla.kernel.org
To: bugme-new@lists.osdl.org
Subject: [Bugme-new] [Bug 6502] New: SIOCSIFHWBROADCAST needs compat layer


http://bugzilla.kernel.org/show_bug.cgi?id=6502

           Summary: SIOCSIFHWBROADCAST needs compat layer
    Kernel Version: 2.6.15
            Status: NEW
          Severity: normal
             Owner: ak@suse.de
         Submitter: Alexandra.Kossovsky@oktetlabs.ru


Most recent kernel where this bug did not occur: all kernels has this problem;
I've tested 2.6.8, 2.6.9, 2.6.15

Distribution:
Hardware Environment: ethernet interface
Software Environment: 32-bit libc with 64-bit kernel
Problem Description:
32-bit program running with 64-bit kernel fails to set hardware broadcast
address via ioctl(SIOCSIFHWBROADCAST).

Steps to reproduce:
Compile the following sample program:
#include <stdio.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <linux/if.h>

main()
{
    int             s = socket(AF_INET, SOCK_DGRAM, 0);
    struct ifreq    req;
    int             rc;
    
    if (s < 0)
    {
        perror("failed to open socket");
        return -1;
    }
    strcpy(req.ifr_name, "eth0");
    req.ifr_hwaddr.sa_family = AF_LOCAL;
    memset(req.ifr_hwaddr.sa_data, 0xff, 6);
    rc = ioctl(s, SIOCSIFHWBROADCAST, &req);
    if (rc != 0)
    {
        perror("ioctl failed");
        return -1;
    }
    printf("ioctl(SIOCSIFHWBROADCAST) passed\n");
    return 0;
}

When compiled to 64-bit binary, it works OK:
ioctl(SIOCSIFHWBROADCAST) passed
When compiled to 32-bit binary, it does not work:
ioctl failed: Invalid argument

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help