Fact-checked by Grok 2 weeks ago

Null character

The null character, also known as NUL, is a assigned the code point value of zero (binary 0000000) in major standards, including the American Standard Code for Information Interchange (ASCII), Extended Binary Coded Decimal Interchange Code (), and (U+0000). As a non-printable character, it serves fundamental roles in , communication, and software implementation without representing visible text or altering semantic content. In the ASCII standard (ANSI X3.4-1977), the null character is defined at position 0/0 and is primarily used for media fill or time fill, enabling its insertion or deletion within data streams to pad or synchronize transmission without impacting the underlying information. It occupies the lowest position in the collating sequence, ensuring it sorts before all other characters in ordering operations. Similarly, EBCDIC assigns it the hexadecimal value 00, maintaining compatibility for legacy mainframe systems where it functions as a control for blank filling or end-of-data markers. In Unicode, while U+0000 retains its control status, its application as a string terminator—common in languages like C—is noted as outside the standard's prescriptive scope for text representation, emphasizing interchange over implementation details. A key application of the null character in modern computing is its role as a null terminator in null-terminated strings, particularly in and derivatives, where it marks the end of a character array to enable efficient length detection by functions like strlen. This convention requires an additional byte beyond the string's content (e.g., the string "Hello" is stored as H-e-l-l-o-\0), distinguishing it from the digit character "0" (ASCII 48). However, this usage introduces security considerations, such as vulnerability to null byte injection attacks that can truncate strings prematurely in parsing operations. The null character's persistence across encoding evolutions underscores its utility in low-level data handling, from legacy systems to contemporary software.

Definition and History

Definition

The null character, commonly abbreviated as NUL, is a control character assigned the code point 0, corresponding to U+0000 in the Unicode standard. It represents no visible glyph or specific action, serving primarily to indicate a null or no-operation state within data streams. In binary representation, it consists of eight zero bits (00000000), making it the lowest-valued character in 8-bit encodings. As a non-printable , NUL is distinct from printable characters like the (U+0020), which occupies visual and separates tokens, whereas NUL carries no informational or spacing . Its core include being ignorable or discardable in without altering the semantic of , though it may influence or device control, such as for media-fill ( unused portions of ) or time-fill (delaying ). According to ISO/IEC 6429:1992, NUL functions to affect the recording, , , or of as a single-bit-combination control. Unlike other control characters such as BEL (U+0007, which triggers an audible alert) or (U+001B, which initiates escape sequences for further commands), NUL's intent is uniquely passive, embodying "no operation" without invoking hardware responses or sequence modifications. A basic example of its role is as an end-of-string marker in null-terminated strings, where it signals the boundary of character sequences without being part of the content itself. This function underscores its utility in distinguishing string length from explicit bounds.

Origins in Early Computing

The concept of a null character traces its roots to early systems in the , where developed a five-unit code for transmitting characters over telegraph lines. In Baudot's system, idle or blank signals—represented by specific pulse patterns or spaces—served to synchronize transmission and fill gaps between meaningful data, preventing misinterpretation of signals during asynchronous communication. These precursors ensured reliable data flow in the absence of printable characters, laying the groundwork for later control mechanisms in digital encoding. In the 1890s, systems introduced by for , such as the U.S. , further developed null-like representations. Hollerith cards used the absence of a punch in a column to denote a blank or null value, distinguishing it from punched digits (rows 0-9) or zones, which allowed for efficient storage and reading without dedicated null punches while avoiding ambiguity in mechanical tabulation. This approach influenced subsequent data media by treating unpunched positions as inert fillers that machines could ignore during processing. The null character was formally introduced in computing standards with the American Standard Code for Information Interchange (ASCII) in 1963, designated as ANSI X3.4, where it was defined as the NUL (code 00) for synchronization and padding in data transmission over channels like teletypes and early networks. This built directly on needs, allowing devices to insert NUL bytes to align bit streams without altering content. Paralleling ASCII, developed the Extended Binary Coded Decimal Interchange Code () in the mid-1960s for its System/360 mainframes, incorporating a null character (also code 00) for similar padding roles in and tape handling. By 1972, the adopted these principles in ISO 646, formalizing the null character as a universal control for idle signaling in international data interchange. Standards for paper tape and magnetic tape, prevalent from the 1950s onward, reinforced the null character's utility by using unpunched sections (no holes) on paper tape or zeroed bytes on magnetic media as null equivalents to prevent over-reading during sequential access. In paper tape protocols, blank tape segments acted as null fillers between characters, enabling error correction by converting faulty positions to skippable nulls, while magnetic tape formats employed null bytes to pad records and maintain block integrity against read errors. These practices ensured compatibility across early storage and transmission systems, evolving the null from a simple idle signal into a foundational element of data formatting.

Representation and Encoding

In ASCII and Extended Standards

In the American National Standard Code for Information Interchange (ASCII), adopted in 1963 and formalized in Publication 1-2, the null character is assigned code 00 (decimal 0, hexadecimal 0x00) and designated by the mnemonic NUL. It serves primarily as a or fill character in fixed-length records and for terminating blocks in data transmission, without altering the content of messages. Extended 7-bit and 8-bit standards preserve this representation for compatibility. In the ISO/IEC 8859 series, such as ISO/IEC 8859-1 (Latin-1), the null character occupies position 00, matching the ASCII control character set exactly for the first 128 codes. In contrast, the Extended Binary Coded Decimal Interchange Code (), used in systems, also positions the null character at hexadecimal 00 (decimal 0), but its control character semantics differ due to EBCDIC's non-contiguous arrangement of controls, affecting how it interacts with other non-printable codes in legacy IBM environments. The representation of the null character is consistently an 8-bit of all zeros (00000000₂), ensuring it functions as a zero-value byte across these standards. In terminal emulators and text editors adhering to conventions, it is often displayed using as ^@ (control-@), which visually represents the control code without rendering the invisible byte. The following table enumerates the null character's position within the standard 128-character ASCII set:
DecimalHexadecimalBinaryMnemonicDescription
00000000000NULNull (fill or block terminator)
For 256-character variants like ( 1252), the null character remains at the same initial position, with extensions applying only to codes 128–255 for additional Latin characters; the control range (0–31 and 127) is unchanged from ASCII.
DecimalHexadecimalBinaryMnemonicDescription
0NULNull (fill or block terminator)

In Unicode and Modern Encodings

In , the null character is assigned the code point (NULL), classified under the general category Cc (Other, Control), and located within the Basic Multilingual Plane () as part of the C0 Controls and Basic Latin block. This placement ensures compatibility with legacy encodings like ASCII, where it occupies the same position at code 00. Regarding normalization, the null character is not decomposable under any Unicode Normalization Form (, NFD, NFKC, NFKD), as its decomposition type is defined as "none," meaning it remains unchanged during canonical or compatibility mappings. It functions primarily as a string terminator in various protocols rather than participating in equivalence transformations or serving as an alternative to the (U+FEFF). In modern variable-width encodings derived from , the null character is represented as a single byte 00 in , adhering to the standard encoding for code points U+0000 to U+007F, though modified UTF-8 variants may use the overlong form C0 80 to avoid embedding null bytes in certain contexts. In , it appears as the two-byte sequence 00 00 regardless of , since it falls within the and does not require surrogate pairs for representation. Systems must avoid interpreting null bytes as surrogates to prevent decoding errors, as surrogates are reserved for code points beyond U+FFFF. The null character is incorporated into ISO/IEC 10646, the international standard aligning with since its first edition in 1993, ensuring universal portability across encodings. In XML documents, U+0000 is forbidden in unescaped form per the XML 1.0 specification, as it falls outside the allowed character range, requiring removal or replacement to maintain validity. Conversely, permits inclusion within strings via the \u0000, allowing representation of the null character in data interchange without disrupting parsing.

Usage in Computing

In Programming Languages

In C and C++, the null character, represented by the escape sequence \0, serves as the terminator for strings, which are implemented as arrays of characters ending with this byte of value zero. String literals are automatically null-terminated by the compiler, as in char* str = "hello";, where the array contains the characters 'h', 'e', 'l', 'l', 'o' followed by \0. Functions like strlen from <cstring> compute the length by iterating until encountering the null character, excluding it from the count. This null termination enables efficient string processing but requires explicit manual addition when constructing strings dynamically, such as in a that copies and appends \0 to mark the end. For example:
c
char str[6];
strcpy(str, "hello");  // Copies "hello" and adds \0
int len = 0;
while (str[len] != '\0') {
    len++;
}  // len becomes 5, stopping at \0
In , strings are not null-terminated; instead, they use a prefixed to track content, allowing the null character \u0000 to appear anywhere within the without signifying termination. The String class stores data as an internal char array of 16-bit code units, with the length() method returning the exact number of , including any \u0000. For instance, String s = "hello\u0000world"; has 11, and substring operations treat \u0000 as a regular . Python handles the null character primarily through bytes objects for , where it is represented as b'\x00' or b'\0' and can be included without terminating the sequence, as bytes are length-prefixed immutable sequences of integers from 0 to 255. strings (str) can also embed \u0000, but for low-level byte manipulation, bytes is used, such as b'hello\x00world', which has length 11 and supports methods like find() that scan past null bytes. In contrast to C's termination role, Python's general string handling relies on explicit lengths to avoid null-related issues. JavaScript strings, as sequences of UTF-16 code units, are length-based and not null-terminated, permitting the null character \x00 or \u0000 as a valid element anywhere in the string. The length property reports the full count of code units, including nulls, as in let s = 'hello\x00world'; console.log(s.length); // 11. This design supports embedding null characters in text processing without abrupt termination. In , the type declares fixed-length strings that are implicitly padded with blank spaces (not null characters) if the assigned value is shorter than the declared length, such as CHARACTER(LEN=10) :: str = "hello", resulting in "hello ". Null characters () can be stored within variables without terminating them, unlike , and are handled explicitly via functions like ICHAR or assignment. This blank padding ensures consistent storage size for array operations and I/O. COBOL uses figurative constants for special values in data items; LOW-VALUE for alphanumeric fields equates to the lowest collating sequence character, which is X'00' (null byte) in , effectively filling the field with null characters. For example, MOVE LOW-VALUE TO ALPHANUM-FIELD sets a PIC X(10) field to ten null bytes. Separately, NULL represents zero for pointer usages but is not directly applicable to character data termination.

In Data Structures and Protocols

In file systems, the null character (0x00) serves as a marker for unused or terminating structures. In the file system, directory entries are 32 bytes each, and an entry beginning with 0x00 in the first byte indicates an unused slot, signaling the end of valid entries in the directory; all subsequent entries are considered invalid and typically zero-filled for padding. In systems, file paths deliberately avoid null bytes as separators because paths are represented as null-terminated strings, preventing any embedded 0x00 from prematurely truncating the path during processing. In databases, the null character appears in specific contexts for binary data handling and field alignment, though string padding typically uses spaces rather than nulls. For instance, in the MySQL binary protocol, strings are length-prefixed rather than null-terminated to accommodate binary content that may include embedded 0x00 bytes without misinterpretation as terminators. Fixed-length character fields, such as CHAR in SQL databases like MySQL and SQL Server, are right-padded with spaces (0x20) to the declared length upon storage, ensuring consistent sizing; null bytes are reserved for binary types like BINARY or VARBINARY where they may pad unused space in variable-length scenarios. This distinction prevents null bytes from interfering with string semantics while allowing their use in non-textual data. Communication protocols leverage the null character primarily for and to meet byte-boundary requirements. In the TCP/IP suite, the TCP header includes a variable-length options field followed by padding bytes set to 0x00, ensuring the total header length is a multiple of 32 bits before the data payload begins; this padding has no semantic meaning and is ignored by receivers. HTTP multipart/form-data payloads, used for uploading files and mixed data, do not rely on null separators—instead, parts are delimited by a unique boundary string—but binary parts (e.g., files) may contain embedded null bytes without issue, as the format supports arbitrary octet streams. In SMTP, the protocol avoids null characters for line endings, which are strictly CRLF (0x0D 0x0A), and the end of the DATA section is marked by a single period on a line (CRLF . CRLF) rather than a null terminator. Representative examples illustrate the null character's role in binary file formats for structural integrity. In the image format, each row of is padded with zero bytes at the end to align the row length to a multiple of 4 bytes, facilitating efficient memory access and processing; for a 24-bit image with width not divisible by 4, the padding ensures hardware-friendly boundaries without altering visual content. Likewise, in Standard MIDI Files (SMF), the end-of-track meta- is encoded as 0xFF 0x2F followed by a length byte of 0x00, effectively a "null" event with no additional , demarcating the conclusion of a track's event sequence.

Significance and Applications

Role in String Handling

The null character, represented as \0 or NUL (ASCII code 0), serves as a delimiter in null-terminated , a convention where a sequence of characters ends with this byte to indicate the string's boundary. This approach allows for variable-length storage without explicitly storing the length, enabling efficient memory use in systems where vary in size. The length of such a is determined by counting the number of bytes from the start until the first \0 is encountered, excluding the terminator itself; for example, the "hello\0" has a length of 5. This design originated in early C development at , where adopted null termination from the B language to simplify handling and avoid the length limitations of earlier count-based systems like , facilitating efficient operations in code on resource-constrained . Null-terminated s enabled straightforward pointer arithmetic for traversal and , as the terminator provided a natural stop condition without additional metadata, which was advantageous for low-level programming in the 1970s Unix environment. This convention persists in modern APIs, such as Microsoft's LPCSTR (long pointer to constant ), which defines a pointer to a null-terminated sequence of single-byte characters used in Windows for passing data to functions. In contrast, length-prefixed strings, as in Pascal-style implementations, store the as a prefix (often a byte or word) before the characters, allowing direct access to the size without scanning. Length-prefixed formats offer faster length computation (constant time via direct read) and support embedding any byte, including NUL, making them suitable for ; however, they incur a fixed overhead for the length field (typically 1-4 bytes) and require updating the prefix during modifications, potentially slowing dynamic operations compared to null-terminated strings' append-by-write approach. Null-terminated strings, while requiring linear-time scanning for length, save space for short strings under 255 characters and align well with instructions for string processing, though they prohibit internal NUL bytes. Beyond core string paradigms, the null character appears in regular expressions, where \0 typically matches the NUL byte itself in POSIX-compatible engines, though standards like POSIX.1-2008 prohibit NUL in the regular expression pattern or input string to avoid undefined behavior in matching operations. In internationalization contexts, such as UTF-8 encoding, null-terminated multibyte strings terminate with a single NUL byte (U+0000), but the C standard mandates that no valid multibyte character includes an embedded NUL byte, ensuring safe traversal by byte-oriented functions while supporting variable-width characters up to four bytes each.

Issues and Best Practices

One common issue with the null character arises in languages like C and C++ that rely on null-terminated strings, where improper bounds checking during operations such as string copying can lead to buffer overflows. For instance, functions like strcpy assume the source string is properly null-terminated and may read beyond allocated memory if the terminator is missing or misplaced, potentially allowing attackers to overwrite adjacent memory and execute arbitrary code. This vulnerability mirrors issues in cases like the Heartbleed bug in OpenSSL, where inadequate length validation on input data led to buffer overreads exposing sensitive information. Another prevalent problem is null byte poisoning, particularly in web applications, where attackers inject a null byte (often URL-encoded as %00) into inputs to bypass security filters. This exploits the behavior of C-based string handling in server-side components, such as web servers or libraries, where the null byte prematurely terminates string processing, allowing traversal of restricted paths or file extensions. For example, appending %00 to a filename like "shell.jpg%00.php" can trick upload handlers into saving a malicious script as an executable file. These issues carry significant security implications, including enabling injection attacks in file paths that lead to unauthorized file access or execution, and facilitating in some database interfaces if null bytes disrupt query parsing. Additionally, encoding mismatches between systems—such as treating a null byte in data as an invalid sequence—can cause , where portions of strings are truncated or misinterpreted during transmission or storage. Historical incidents highlight the risks; in the 2000s, numerous PHP applications, including phpBB versions up to 2.0.21, suffered from null byte vulnerabilities in file upload features, allowing remote attackers to upload and execute arbitrary files by poisoning checks. These flaws were widespread due to PHP's underlying C string dependencies, affecting countless web applications until mitigations were introduced in PHP 5.3.4. Null byte issues persist as of 2025, with recent vulnerabilities such as CVE-2025-47812 in Wing FTP Server, involving improper neutralization of null bytes leading to unauthorized , and CVE-2025-55113 in Control-M/Agent, exploiting null bytes to bypass controls. To mitigate these risks, developers should adopt best practices such as using length-prefixed or length-based string representations in modern codebases, like std::string in C++, which explicitly tracks string length and permits embedded null characters without relying on termination for bounds. Input validation is essential: always scan for and reject embedded null bytes in user-supplied data, especially for file paths, URLs, and database queries, using techniques like explicit length checks or regular expressions to detect %00 encodings. Security tools, such as web application scanners (e.g., or ), can automate null byte detection during testing to identify poisoning vectors early.

References

  1. [1]
    [PDF] code for information interchange - NIST Technical Series Publications
    The Null character (position 0/0) will be ranked low and the Delete character (position 7/15) will be. 11. Page 16. AMERICAN NATIONAL STANDARD X3.4-1977 ranked ...
  2. [2]
    EBCDIC Table
    EBCDIC Table ; Dec, Hex, Code ; 0, 00, NUL ; 1, 01, SOH ; 2, 02, STX ; 3, 03, ETX ...
  3. [3]
    [PDF] C0 Controls and Basic Latin - The Unicode Standard, Version 17.0
    → FFFD Ů replacement character. 001B DZ <control>. = ESCAPE. 001C Dz <control> ... 0000 ǖ <control>. = NULL. 0001 Ǘ <control>. = START OF HEADING. 0002 ǘ ...
  4. [4]
    Special Areas and Format Characters - Unicode
    U+0000 null may be used as a Unicode string terminator, as in the C language. Such usage is outside the scope of the Unicode Standard, which does not ...
  5. [5]
    Null Character - an overview | ScienceDirect Topics
    The null character is defined as the numerical value 0 (the ASCII null character), which is distinct from the character “0” that has the ASCII code value 48.Introduction to the Null... · Role of the Null Character in...
  6. [6]
    [PDF] Standard ECMA-48
    Jun 13, 1991 · This ECMA Standard defines control functions and their coded representations for use in a 7-bit code, an extended 7-bit code, an 8-bit code or ...
  7. [7]
    [PDF] ISO/IEC 6429 - iTeh Standards
    22 Control character: A control function the coded representation of which consists of a single bit combination. 4.2.23 Control: function: An action that ...
  8. [8]
    CS124: Java, Section 9.2
    The null character is not really considered to be part of the string. It's there just as an end-of-string marker. ... The computer adds a null character in ...
  9. [9]
    [PDF] Words and Tokens - Stanford University
    May 23, 2025 · ... end-of-string marker. Instead, the most common encoding standard is ... representing the NULL character which is U+0000), it's backwards ...
  10. [10]
    [PDF] The Evolution of Character Codes, 1874-1968
    Émile Baudot's printing telegraph was the first widely adopted device to encode letters, numbers, and symbols as uniform-length binary sequences.
  11. [11]
    ISO 646-1973 Information technology — ISO 7-bit coded character ...
    The use of this character is specified in ISO 2022. receiver as a negative response to the sender. NUL Null A control c h a r a c t e r u s e d to ...
  12. [12]
    Reading Punched Paper Tape - ICL CES
    Two values have a special meaning: 0, which is no holes, is not considered to be a character. This means that we can run out blank tape between characters with ...
  13. [13]
    [PDF] American National Standard - GovInfo
    American National Standard Code for Information Interchange (ASCII) was first issued in 1963 and then published twice again with minor revisions as X3.4-1967 ...
  14. [14]
    [PDF] ISO 8859-1:1987 - iTeh Standards
    This set of graphic characters, the Latin alphabet No. 1, is intended for use in data processing and text applications and may also be used for information ...
  15. [15]
    The EBCDIC character set - IBM
    In particular, nulls and new line characters (or CL/LF character pairs) are not used. There is no concept of a binary versus a text file. Bytes can be ...Missing: 1960s | Show results with:1960s
  16. [16]
    Zero NULL Character and Typing or Inserting NULL in the Terminal
    Mar 18, 2024 · \000, \x00, \u0000: escape sequences; \0: ANSI-C escape code; ^@: caret notation. So, NULL is the actual value of zero (0).
  17. [17]
    Code Page Identifiers - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The following table defines the available code page identifiers. Note: ANSI code pages can be different on different computers, or can be changed for a single ...Missing: NUL | Show results with:NUL
  18. [18]
    Code Pages - Win32 apps - Microsoft Learn
    Oct 26, 2021 · Each code page is represented by a code page identifier, for example, 1252, and is handled by the Unicode and character set API functions.Missing: NUL | Show results with:NUL
  19. [19]
    0000 | Unicode Wiki - Fandom
    The null character (also null terminator) is a control character with the value zero. It is present in many character sets.U+0000 · Information · Representations
  20. [20]
  21. [21]
    Unicode Character 'NULL' (U+0000) - FileFormat.Info
    Raster image of U+0000 ; BIDI, Boundary Neutral [BN] ; Mirror, N ; Old name, NULL ; Index entries, Area, General Scripts General Scripts Area NULL Control Codes, C0Missing: definition | Show results with:definition<|control11|><|separator|>
  22. [22]
  23. [23]
    String (Java Platform SE 8 ) - Oracle Help Center
    The String class provides methods for dealing with Unicode code points (i.e., characters), in addition to those for dealing with Unicode code units (i.e., char ...Frames · Character · Uses of Class java.lang.String · CharSequence
  24. [24]
  25. [25]
    String - JavaScript | MDN
    ### Summary of JavaScript Strings
  26. [26]
    Character Handling in Fortran
    Apr 8, 2021 · Character Sets and Kinds​​ Note that in Fortran the null character can be stored within a string without problems, unlike in C where nulls are ...
  27. [27]
    IBM Enterprise COBOL for z/OS
    ### Summary of COBOL Figurative Constants NULL and LOW-VALUE
  28. [28]
    FAT - OSDev Wiki
    A directory entry simply stores the information needed to know where a file's data or a folder's children are stored on the disk. It also holds information such ...
  29. [29]
    NTFS file system improvements (suggestions) · Issue #15704 - GitHub
    Dec 18, 2017 · ... (pad with null characters if the file size is not exactly divisible by 512), then repeat and the end of file is represented by 1024 bytes of ...
  30. [30]
    Unexpected Places You Can And Can't Use Null Bytes - eklitzke.org
    Feb 1, 2017 · Null bytes are restricted in filesystem paths, command arguments, and environment variables. However, they can be used in "abstract" Unix ...Missing: avoid separators
  31. [31]
    5.2 C API Basic Data Structures - MySQL :: Developer Zone
    (You cannot treat these as null-terminated strings if field values may contain binary data, because such values may contain null bytes internally.) Rows are ...
  32. [32]
    MySQL Bugs: #24424: CHAR data-type not space-padding
    Nov 19, 2006 · The length can be any value from 0 to 255. When CHAR values are stored, they are right-padded with spaces to the specified length. When CHAR ...
  33. [33]
    SET ANSI_PADDING (Transact-SQL) - SQL Server - Microsoft Learn
    Apr 28, 2025 · SET ANSI_PADDING controls the way the column stores values shorter than the defined size of the column.
  34. [34]
    TCP Header Format - freesoft.org
    Padding: variable. The TCP header padding is used to ensure that the TCP header ends and data begins on a 32 bit boundary. The padding is composed of zeros.
  35. [35]
    What are the ramifications of null bytes and multipart/form-data?
    Dec 17, 2009 · Null bytes work just fine, provided the MIME headers associated with the file specify the file data is using an encoding that can handle null characters ...Multipart/form-data request empty - Stack OverflowExample of multipart/form-data - Stack OverflowMore results from stackoverflow.com
  36. [36]
    RFC 821: Simple Mail Transfer Protocol
    DATA <CRLF> If accepted, the receiver-SMTP returns a 354 Intermediate reply and considers all succeeding lines to be the message text. When the end of text ...
  37. [37]
    THE BMP FILE FORMAT
    Each pixel in the bitmap is represented by a 4-bit index into the palette. For example, if the first byte in the bitmap is 1Fh, the byte represents two pixels.Missing: null alignment
  38. [38]
    MID Format - ModdingWiki - shikadi.net
    Oct 17, 2020 · Meta events are events specific to MIDI files themselves. They are not transmitted to MIDI devices. A meta event is signalled by the 0xFF system ...
  39. [39]
    The Most Expensive One-byte Mistake - ACM Queue
    Jul 25, 2011 · The expensive one-byte mistake is the use of NUL-terminated text strings in C/Unix/Posix, which led to CPU instructions and virtual memory ...
  40. [40]
    Windows Data Types (BaseTsd.h) - Win32 apps - Microsoft Learn
    Nov 7, 2024 · LPCWSTR. A pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts.
  41. [41]
    [PDF] Digital Design and Computer Architecture - IIS Windows Server
    C strings are called null terminated or zero terminated because the length ... An advantage of null-terminated strings is that the length can be arbitrarily great ...
  42. [42]
    STR31-C. Guarantee that storage for strings has sufficient space for ...
    Copying data to a buffer that is not large enough to hold that data results in a buffer overflow. Buffer overflows occur frequently when manipulating ...
  43. [43]
    String Termination Error | OWASP Foundation
    String termination errors occur when: Data enters a program via a function that does not null terminate its output.
  44. [44]
    CWE-626: Null Byte Interaction Error (Poison Null Byte) (4.18)
    The poison null byte is frequently useful in path traversal attacks by terminating hard-coded extensions that are added to a filename. It can play a role in ...
  45. [45]
    Embedding Null Code - OWASP Foundation
    Embedding null code exploits applications that don't handle postfix NULL terminators, enabling attacks like directory browsing and arbitrary code execution.
  46. [46]
    CWE-170: Improper Null Termination (4.18)
    A randomly placed null character may put the system into an undefined state, and therefore make it prone to crashing. A misplaced null character may corrupt ...Missing: encoding mismatch
  47. [47]
    Null bytes related issues - Manual - PHP
    As null bytes denote the end of a string in C, strings containing them won't be considered entirely but rather only until a null byte occurs.Missing: 2000s | Show results with:2000s
  48. [48]
    phpBB 2.0.21 - Poison Null Byte Remote File Upload - Exploit-DB
    Sep 11, 2006 · #!/usr/bin/perl -w # Author: ShAnKaR # Title: multiple PHP application poison NULL byte vulnerability # Applications: phpBB 2.0.21, ...
  49. [49]
    Null byte injection in PHP - Secure coding - Infosec Institute
    Apr 29, 2018 · The null character is a control character with the value zero. It is presented in many character sets such as ASCII (American Standard Code ...
  50. [50]
    Null byte attacks are alive and well | Blog - PortSwigger
    May 5, 2008 · The reason the attack works is because of the different ways in which null bytes are typically handled in native and managed code. In native ...