From owner-freebsd-arch@FreeBSD.ORG Mon Aug 5 07:05:15 2013 Return-Path: <owner-freebsd-arch@FreeBSD.ORG> Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4AF786CD for <arch@freebsd.org>; Mon, 5 Aug 2013 07:05:15 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id 127CE2BF9 for <arch@freebsd.org>; Mon, 5 Aug 2013 07:05:15 +0000 (UTC) Received: from critter.freebsd.dk (unknown [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id ABACB3EB33 for <arch@freebsd.org>; Mon, 5 Aug 2013 07:05:07 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.7/8.14.7) with ESMTP id r75757Ok041765 for <arch@freebsd.org>; Mon, 5 Aug 2013 07:05:07 GMT (envelope-from phk@phk.freebsd.dk) To: arch@freebsd.org Subject: sockaddr API question From: Poul-Henning Kamp <phk@phk.freebsd.dk> Content-Type: text/plain; charset=ISO-8859-1 Date: Mon, 05 Aug 2013 07:05:07 +0000 Message-ID: <41764.1375686307@critter.freebsd.dk> X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion related to FreeBSD architecture <freebsd-arch.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-arch>, <mailto:freebsd-arch-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-arch> List-Post: <mailto:freebsd-arch@freebsd.org> List-Help: <mailto:freebsd-arch-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-arch>, <mailto:freebsd-arch-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 05 Aug 2013 07:05:15 -0000 The theoretical variant of the question: Where the length of a sockaddr must be passed to an API, library or kernel, is it _always_ legal for the length to be larger than the relevant subtype of struct sockaddr ? The practical variant of the question: Can I just use struct sockaddr_storage all over the place and give sizeof(struct sockaddr_storage) to sockaddr_len arguments ? PS: Yes, I realize that there will be inefficiencies related to moving more data than required, the question is only if it is safe, not if it is a good idea. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.