LCOV - code coverage report
Current view: top level - src/test/modules/dummy_seclabel - dummy_seclabel.c (source / functions) Coverage Total Hit
Test: Code coverage Lines: 0.0 % 19 0
Test Date: 2026-01-26 10:56:24 Functions: 0.0 % 5 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /*
       2              :  * dummy_seclabel.c
       3              :  *
       4              :  * Dummy security label provider.
       5              :  *
       6              :  * This module does not provide anything worthwhile from a security
       7              :  * perspective, but allows regression testing independent of platform-specific
       8              :  * features like SELinux.
       9              :  *
      10              :  * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
      11              :  * Portions Copyright (c) 1994, Regents of the University of California
      12              :  */
      13              : #include "postgres.h"
      14              : 
      15              : #include "commands/seclabel.h"
      16              : #include "fmgr.h"
      17              : #include "miscadmin.h"
      18              : #include "utils/rel.h"
      19              : 
      20            0 : PG_MODULE_MAGIC;
      21              : 
      22            0 : PG_FUNCTION_INFO_V1(dummy_seclabel_dummy);
      23              : 
      24              : static void
      25            0 : dummy_object_relabel(const ObjectAddress *object, const char *seclabel)
      26              : {
      27            0 :         if (seclabel == NULL ||
      28            0 :                 strcmp(seclabel, "unclassified") == 0 ||
      29            0 :                 strcmp(seclabel, "classified") == 0)
      30            0 :                 return;
      31              : 
      32            0 :         if (strcmp(seclabel, "secret") == 0 ||
      33            0 :                 strcmp(seclabel, "top secret") == 0)
      34              :         {
      35            0 :                 if (!superuser())
      36            0 :                         ereport(ERROR,
      37              :                                         (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
      38              :                                          errmsg("only superuser can set '%s' label", seclabel)));
      39            0 :                 return;
      40              :         }
      41            0 :         ereport(ERROR,
      42              :                         (errcode(ERRCODE_INVALID_NAME),
      43              :                          errmsg("'%s' is not a valid security label", seclabel)));
      44            0 : }
      45              : 
      46              : void
      47            0 : _PG_init(void)
      48              : {
      49            0 :         register_label_provider("dummy", dummy_object_relabel);
      50            0 : }
      51              : 
      52              : /*
      53              :  * This function is here just so that the extension is not completely empty
      54              :  * and the dynamic library is loaded when CREATE EXTENSION runs.
      55              :  */
      56              : Datum
      57            0 : dummy_seclabel_dummy(PG_FUNCTION_ARGS)
      58              : {
      59            0 :         PG_RETURN_VOID();
      60              : }
        

Generated by: LCOV version 2.3.2-1