xref: /aosp_15_r20/external/crosvm/jail/seccomp/detect_duplication.py (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3#
4# Copyright (C) 2023 The Android Open Source Project
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10#      http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18import sys
19
20data = list(map(str.strip, sys.stdin.readlines()))
21
22last_seen = dict()
23
24for i, l in enumerate(data):
25    if not l.startswith("#") and ":" in l:
26        syscall = l.split()[0]
27        if syscall in last_seen:
28            sys.exit("syscall %s redefined in L%d(previous definition in L%d)" % (syscall, i, last_seen[syscall]))
29        last_seen[syscall] = i
30    print(l)