smk_parse_rule(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… smk_parse_rule(9) β€” like, the Kernel API Manual edition, bestie πŸŽ€

okay so real talk, this whole page lives in the Kernel API Manual, and the star of the show is smk_parse_rule β€” a function whose entire personality is "turn a load string into a Smack rule." no cap, that's the vibe. ✨


🌸 NAME 🌸

smk_parse_rule β€” parse a Smack rule from a load string. literally that's it, that's the job 🫢


✨ SYNOPSIS ✨

int smk_parse_rule (const char *data , struct smack_parsed_rule *rule ,
       int import );

πŸŽ€ ARGUMENTS πŸŽ€

  • data β€” the string to be parsed, and bestie its size is SMK_LOADLEN. that's a fixed-size situation, so don't come at it with whatever length you want πŸ’€
  • rule β€” the Smack rule. that's the thing you're filling in, main character energy fr fr πŸ‘‘
  • import β€” if it's non-zero, the labels get imported. if it's zero, they don't. simple as 🌈

πŸ¦‹ DESCRIPTION πŸ¦‹

returns 0 on success, and -1 on errors. that's the whole mood board, honestly β€” zero means slay, minus one means something went sideways 😭

lowkey important: -1 is the error signal here, so always vibe check that return value before you keep going.

πŸ”₯ SEE ALSO πŸ”₯

kernel file ./security/smack/smackfs.c πŸ’– and then, like, the extended friend group:

smk_netlabel_audit_set(9), smk_set_access(9), smk_perm_from_str(9), smk_fill_rule(9), smk_parse_long_rule(9), smk_write_rules_list(9), smk_open_load(9), smk_write_load(9), smk_cipso_doi(9), smk_unlbl_ambient(9), smk_open_cipso(9), smk_set_cipso(9), smk_write_cipso(9), smk_open_cipso2(9), smk_write_cipso2(9), smk_open_net4addr(9), smk_net4addr_insert(9), smk_write_net4addr(9), smk_open_net6addr(9), smk_net6addr_insert(9), smk_write_net6addr(9), smk_read_doi(9), smk_write_doi(9), smk_read_cipso_auto_level(9), smk_write_cipso_auto_level(9), smk_read_ambient(9), smk_write_ambient(9), smk_list_swap_rcu(9), smk_parse_label_list(9), smk_destroy_label_list(9), smk_write_onlycap(9), smk_read_unconfined(9), smk_write_unconfined(9), smk_read_logging(9), smk_write_logging(9), smk_open_load_self(9), smk_write_load_self(9), smk_user_access(9), smk_write_access(9), smk_open_load2(9), smk_write_load2(9), smk_open_load_self2(9), smk_write_load_self2(9), smk_write_access2(9), smk_write_revoke_subj(9), smk_init_sysfs(9), smk_write_change_rule(9), smk_read_syslog(9), smk_write_syslog(9), smk_open_relabel_self(9), smk_write_relabel_self(9), smk_read_ptrace(9), smk_write_ptrace(9), smk_fill_super(9), smk_get_tree(9), smk_init_fs_context(9), init_smk_fs(9) 🌟


and that's the whole page, mwah πŸ’‹ β€” brought to you by the ./security/smack girlies, dated October 2026, in the one and only Kernel API Manual. go forth and parse responsibly πŸ§šβ€β™€οΈπŸ’œ

πŸ“¦ where this page comes from