1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/bin/sh
- SYSCTL="/proc/sys"
- TARGET="${SYSCTL}/kernel/domainname"
- ORIG=$(cat "${TARGET}")
- TEST_STR="Testing sysctl"
- . ./common_tests
- # Only string sysctls support seeking/appending.
- MAXLEN=65
- echo -n "Writing entire sysctl in short writes ... "
- set_orig
- dd if="${TEST_FILE}" of="${TARGET}" bs=1 2>/dev/null
- if ! verify "${TARGET}"; then
- echo "FAIL" >&2
- rc=1
- else
- echo "ok"
- fi
- echo -n "Writing middle of sysctl after unsynchronized seek ... "
- set_test
- dd if="${TEST_FILE}" of="${TARGET}" bs=1 seek=1 2>/dev/null
- if verify "${TARGET}"; then
- echo "FAIL" >&2
- rc=1
- else
- echo "ok"
- fi
- echo -n "Checking sysctl maxlen is at least $MAXLEN ... "
- set_orig
- perl -e 'print "A" x ('"${MAXLEN}"'-2), "B";' | \
- dd of="${TARGET}" bs="${MAXLEN}" 2>/dev/null
- if ! grep -q B "${TARGET}"; then
- echo "FAIL" >&2
- rc=1
- else
- echo "ok"
- fi
- echo -n "Checking sysctl keeps original string on overflow append ... "
- set_orig
- perl -e 'print "A" x ('"${MAXLEN}"'-1), "B";' | \
- dd of="${TARGET}" bs=$(( MAXLEN - 1 )) 2>/dev/null
- if grep -q B "${TARGET}"; then
- echo "FAIL" >&2
- rc=1
- else
- echo "ok"
- fi
- echo -n "Checking sysctl stays NULL terminated on write ... "
- set_orig
- perl -e 'print "A" x ('"${MAXLEN}"'-1), "B";' | \
- dd of="${TARGET}" bs="${MAXLEN}" 2>/dev/null
- if grep -q B "${TARGET}"; then
- echo "FAIL" >&2
- rc=1
- else
- echo "ok"
- fi
- echo -n "Checking sysctl stays NULL terminated on overwrite ... "
- set_orig
- perl -e 'print "A" x ('"${MAXLEN}"'-1), "BB";' | \
- dd of="${TARGET}" bs=$(( $MAXLEN + 1 )) 2>/dev/null
- if grep -q B "${TARGET}"; then
- echo "FAIL" >&2
- rc=1
- else
- echo "ok"
- fi
- exit $rc
|