54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
#include "poc_test.h"
|
|
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <sys/socket.h>
|
|
#include <unistd.h>
|
|
|
|
int main(int argc, char* argv[]) {
|
|
VtsHostInput host_input = ParseVtsHostFlags(argc, argv);
|
|
struct sockaddr sa;
|
|
socklen_t len, i;
|
|
int fd;
|
|
|
|
fd = socket(AF_BLUETOOTH, SOCK_STREAM, 3);
|
|
if (fd == -1) {
|
|
printf("[-] can't create socket: %s\n", strerror(errno));
|
|
return POC_TEST_SKIP;
|
|
}
|
|
|
|
memset(&sa, 0, sizeof(sa));
|
|
sa.sa_family = AF_BLUETOOTH;
|
|
|
|
if (bind(fd, &sa, 2)) {
|
|
printf("[-] can't bind socket: %s\n", strerror(errno));
|
|
close(fd);
|
|
return POC_TEST_SKIP;
|
|
}
|
|
|
|
len = sizeof(sa);
|
|
if (getsockname(fd, &sa, &len)) {
|
|
printf("[-] can't getsockname for socket: %s\n", strerror(errno));
|
|
close(fd);
|
|
return POC_TEST_SKIP;
|
|
} else {
|
|
printf("[+] getsockname return len = %d\n", len);
|
|
}
|
|
|
|
for (i = 0; i < len; i++) {
|
|
printf("%02x ", ((unsigned char*)&sa)[i]);
|
|
}
|
|
printf("\n");
|
|
|
|
for (i = 1; i < len; i++) {
|
|
if (((unsigned char*)&sa)[i] != 0) {
|
|
return POC_TEST_FAIL;
|
|
}
|
|
}
|
|
|
|
close(fd);
|
|
return POC_TEST_PASS;
|
|
}
|