rem: *value = attr->u.vec[0].iov_base;
add: *value = attr->u.ptr;
context: net_attribute * find_attribute(net_attribute *list, const void *id, int *type,	void **value, size_t *size){	net_attribute *attr;	if (! list)		return NULL;			// dprintf("find_attribute(%p, %p)\n", list, id);	attr = list;	while (attr) {		if (attr->id == id) {			if (type)	*type = attr->type;			if (size) 	*size = attr->size;			if (value) {				switch (attr->type & NET_ATTRIBUTE_TYPE_MASK) {				case NET_ATTRIBUTE_BOOL: 	*value = &attr->u.boolean; break;				case NET_ATTRIBUTE_BYTE:	*value = &attr->u.byte; break;				case NET_ATTRIBUTE_INT16:	*value = &attr->u.word; break;				case NET_ATTRIBUTE_INT32:	*value = &attr->u.dword; break;				case NET_ATTRIBUTE_INT64:	*value = &attr->u.ddword; break;								case NET_ATTRIBUTE_DATA:				case NET_ATTRIBUTE_STRING:					*value = &attr->u.data;					break;									case NET_ATTRIBUTE_POINTER:					*value = attr->u.vec[0].iov_base;					break;									case NET_ATTRIBUTE_IOVEC:					*value = &attr->u.vec;					break;				};			};			return attr;		};		attr = attr->next;	};	return NULL;}