smack_ipv4host_label(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– smack_ipv4host_label(9) πŸ’–

okay so bestie, we're in the Kernel API Manual (section 9, kernel space only, no userland shenanigans) and today's main character is smack_ipv4host_label β€” the little function whose whole job is check host based restrictions. yes, that's it, that's the vibe. let's get into it 🫢


✨ SYNOPSIS ✨

struct smack_known * smack_ipv4host_label (struct sockaddr_in *sip );

literally one function, one argument, no cap πŸ”₯


πŸŽ€ ARGUMENTS πŸŽ€

  • sip β€” the object end. that's it. that's the whole description the docs gave us. it's giving "minimalist queen" πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

so what does it actually do? it looks for host based access restrictions. slay, iconic, security-conscious πŸ’–

now for the real talk, bestie, because there are two things you genuinely cannot skip:

  • This version will only be appropriate for really small sets of single label hosts. like, keychain-sized. if your set of single label hosts is huge, this is not the function for you, and that's on periodt. πŸ™ˆ
  • The caller is responsible for ensuring that the RCU read lock is taken before calling this function. read that again. you, the caller, are responsible. not the function, not your friend, not the kernel. you. take the RCU read lock first or it's a whole thing 😭

and the payoff:

  • Returns the label of the far end or NULL if it's not special. so like if the far end is special you get its label, and if it's just a normal little guy you get NULL. very "you're either iconic or you're NULL" of it πŸ’€

🌈 SEE ALSO 🌈

the Smack family is enormous and every single one of them deserves a shoutout, so here's the whole extended family roll call, straight from the kernel file ./security/smack/smack_lsm.c πŸ‘‘

smk_fetch(9), init_inode_smack(9), init_task_smack(9), smk_copy_rules(9),
smk_copy_relabel(9), smk_ptrace_mode(9), smk_ptrace_rule_check(9),
smack_ptrace_access_check(9), smack_ptrace_traceme(9), smack_syslog(9),
smack_sb_alloc_security(9), smack_fs_context_submount(9),
smack_fs_context_dup(9), smack_fs_context_parse_param(9),
smack_set_mnt_opts(9), smack_sb_statfs(9), smack_bprm_creds_for_exec(9),
smack_inode_alloc_security(9), smk_rule_transmutes(9),
smack_inode_init_security(9), smack_inode_link(9),
smack_inode_unlink(9), smack_inode_rmdir(9), smack_inode_rename(9),
smack_inode_permission(9), smack_inode_setattr(9),
smack_inode_getattr(9), smack_inode_xattr_skipcap(9),
smack_inode_setxattr(9), smack_inode_post_setxattr(9),
smack_inode_getxattr(9), smack_inode_removexattr(9),
smack_inode_set_acl(9), smack_inode_get_acl(9),
smack_inode_remove_acl(9), smack_inode_getsecurity(9),
smack_inode_listsecurity(9), smack_inode_getlsmprop(9),
smack_file_alloc_security(9), smack_file_ioctl(9), smack_file_lock(9),
smack_file_fcntl(9), smack_mmap_file(9), smack_file_set_fowner(9),
smack_file_send_sigiotask(9), smack_file_receive(9), smack_file_open(9),
smack_cred_alloc_blank(9), smack_cred_free(9), smack_cred_prepare(9),
smack_cred_transfer(9), smack_cred_getsecid(9),
smack_cred_getlsmprop(9), smack_kernel_act_as(9),
smack_kernel_create_files_as(9), smk_curacc_on_task(9),
smack_task_setpgid(9), smack_task_getpgid(9), smack_task_getsid(9),
smack_current_getlsmprop_subj(9), smack_task_getlsmprop_obj(9),
smack_task_setnice(9), smack_task_setioprio(9), smack_task_getioprio(9),
smack_task_setscheduler(9), smack_task_getscheduler(9),
smack_task_movememory(9), smack_task_kill(9), smack_task_to_inode(9),
smack_sk_alloc_security(9), smack_sk_free_security(9),
smack_sk_clone_security(9), smack_ipv6host_label(9),
smack_netlbl_add(9), smack_netlbl_delete(9), smk_ipv4_check(9),
smk_ipv6_check(9), smk_ipv6_port_label(9), smk_ipv6_port_check(9),
smack_inode_setsecurity(9), smack_socket_post_create(9),
smack_socket_socketpair(9), smack_socket_bind(9),
smack_socket_connect(9), smack_flags_to_may(9),
smack_msg_msg_alloc_security(9), smack_of_ipc(9),
smack_ipc_alloc_security(9), smk_curacc_shm(9), smack_shm_associate(9),
smack_shm_shmctl(9), smack_shm_shmat(9), smk_curacc_sem(9),
smack_sem_associate(9), smack_sem_semctl(9), smack_sem_semop(9),
smk_tskacc_msq(9), smk_curacc_msq(9), smack_msg_queue_associate(9),
smack_msg_queue_msgctl(9), smack_msg_queue_msgsnd(9),
smack_msg_queue_msgrcv(9), smack_ipc_permission(9),
smack_ipc_getlsmprop(9), smack_d_instantiate(9), smack_getselfattr(9),
smack_getprocattr(9), do_setattr(9), smack_setselfattr(9),
smack_setprocattr(9), smack_unix_stream_connect(9),
smack_unix_may_send(9), smack_socket_sendmsg(9), smack_from_secattr(9),
smack_from_skb(9), smack_from_netlbl(9), smack_socket_sock_rcv_skb(9),
smack_socket_getpeersec_stream(9), smack_socket_getpeersec_dgram(9),
smack_inet_conn_request(9), smack_inet_csk_clone(9), smack_key_alloc(9),
smack_key_permission(9), smack_watch_key(9), smack_post_notification(9),
smack_audit_rule_init(9), smack_audit_rule_known(9),
smack_audit_rule_match(9), smack_ismaclabel(9), smack_to_secctx(9),
smack_secid_to_secctx(9), smack_lsmprop_to_secctx(9),
smack_secctx_to_secid(9), smack_uring_override_creds(9),
smack_uring_sqpoll(9), smack_uring_cmd(9), smack_init(9)
fr fr bestie, go read smack_ipv6host_label(9) too, she's smack_ipv4host_label's sister and she ate πŸ’…

and that's the whole page, no notes πŸŽ€ this little cutie lives in ./security/smack and this drop is dated October 2026 β€” see you in the next manual page, bestie, mwah πŸ’œπŸ¦‹βœ¨

πŸ“¦ where this page comes from