--- /dev/null
+# xdgmime
+
+Target functions for xdgmime (platform/core/appfw/xdgmime)
+
+Fuzzed functions:
+* xdg_mime_get_mime_type_for_data (data, len, result_prio)
+* xdg_mime_get_mime_type_from_file_name (file_name)
+
--- /dev/null
+#!/bin/bash -e
+
+BUILD_HOME=/home/abuild/rpmbuild/BUILD/xdgmime-0.0.12
+CXX=g++
+SOURCE=("xdgmime-data-fuzz.cpp" "xdgmime-filename-fuzz.cpp")
+CFLAGS="-g -I${BUILD_HOME}/xdgmime/src "
+LDFLAGS="-L${BUILD_HOME} -lxdgmime -lpthread "
+OUT=("xdgmime-data-fuzz.out" "xdgmime-filename-fuzz.out")
+LIBFUZZER=$(rpm -ql libFuzzer 2>/dev/null | grep libFuzzer.a)
+
+if [[ -z $LIBFUZZER ]]; then
+ echo "libFuzzer is not installed!"
+ exit 1
+fi
+
+for i in "${!SOURCE[@]}"; do
+ ${CXX} ${CFLAGS} ${SOURCE[$i]} ${LIBFUZZER} ${LDFLAGS} -o ${OUT[$i]}
+done
+
--- /dev/null
+#include <stdint.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <assert.h>
+
+#include <xdgmime.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ int prio;
+
+ /* Fuzzing target */
+ xdg_mime_get_mime_type_for_data((void *)data, size, &prio);
+
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <stdint.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <assert.h>
+
+#include <xdgmime.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ char *file_extension_with_dot = (char *)calloc(size + 2, sizeof(char));
+
+ file_extension_with_dot[0] = '.';
+ memcpy(file_extension_with_dot + 1, data, size);
+ file_extension_with_dot[size+1] = '\0';
+
+ /* Target Function */
+ xdg_mime_get_mime_type_from_file_name(file_extension_with_dot);
+
+ free(file_extension_with_dot);
+
+ return 0;
+}