Begin forwarded message:

Date: Sat, 6 May 2006 08:24:25 -0700
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
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: [EMAIL PROTECTED]
         Submitter: [EMAIL PROTECTED]


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.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to