$ mkdir ~/Dropbox/enc (暗号化したファイルを置くディレクトリを作成)
$ mkdir ~/drop (マウントポイントを作成)
$ encfs ~/Dropbox/enc ~/drop
これでOK。Dropboxが~/Dropboxを勝手に同期してくれるので、アプリからは~/dropにあるファイルにアクセスすればよい。
アンマウントは以下。
$ fusermount -u ~/drop
$ mkdir ~/Dropbox/enc (暗号化したファイルを置くディレクトリを作成)
$ mkdir ~/drop (マウントポイントを作成)
$ encfs ~/Dropbox/enc ~/drop
これでOK。Dropboxが~/Dropboxを勝手に同期してくれるので、アプリからは~/dropにあるファイルにアクセスすればよい。
アンマウントは以下。
$ fusermount -u ~/drop
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
static void *print_thread(void *arg)
{
for (;;) {
printf("print thread\n");
}
}
int main(void)
{
pthread_t th;
pthread_create(&th, 0, print_thread, 0);
for (;;) {
printf("main\n");
}
return 0;
}
(gdb) thr 1
[Switching to thread 1 (Thread 0xb7e576b0 (LWP 12994))]#0 0xb7fdc424 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7fdc424 in __kernel_vsyscall ()
#1 0xb7f46b53 in ?? () from /lib/i686/cmov/libc.so.6
#2 0xb7eb87b3 in ?? () from /lib/i686/cmov/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) thr 2
[Switching to thread 2 (Thread 0xb7e56b90 (LWP 12997))]#0 0xb7fdc424 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7fdc424 in __kernel_vsyscall ()
#1 0xb7f2828b in write () from /lib/i686/cmov/libc.so.6
#2 0xb7ec1d6c in _IO_file_write () from /lib/i686/cmov/libc.so.6
#3 0xb7ec2ee7 in _IO_do_write () from /lib/i686/cmov/libc.so.6
#4 0xb7ec2895 in _IO_file_overflow () from /lib/i686/cmov/libc.so.6
#5 0xb7ec5713 in __overflow () from /lib/i686/cmov/libc.so.6
#6 0xb7eb8746 in puts () from /lib/i686/cmov/libc.so.6
#7 0x08048456 in print_thread (arg=0x0) at a.c:12
#8 0xb7fb94c0 in start_thread () from /lib/i686/cmov/libpthread.so.0
#9 0xb7f386de in clone () from /lib/i686/cmov/libc.so.6
#define CLOCK_TICK_RATE 1193180
int main(int argc, char *argv[])
{
int fd;
int ret;
int freq;
int val;
fd = open("/dev/console", O_WRONLY);
if (fd == -1) {
perror("open");
exit(1);
if (argc > 1) {
freq = atoi(argv[1]);
val = (int)(CLOCK_TICK_RATE/freq);
} else {
val = 0;
}
ret = ioctl(fd, KIOCSOUND, val);
if (ret < 0) {
perror("ioctl");
exit(1);
}
return 0;
}
#!/bin/sh
openssl s_server ...(省略)... &
$ ./openssl.sh
とすると、バックグラウンドでopensslのs_serverが起動する。$ ./openssl.sh
を実行すると、このs_serverにブラウザから接続できる。$ openssl s_server ... &
#!/bin/sh
openssl s_server ...(省略)...
$ openssl.sh &
mprotect(buf, len, PROT_WRITE);
memset(buf, 0, len);
原因は、glibcがmemset時にリードアクセスを行う事があるためらしい。