Ejemplo n.º 1
0
static int
qual_syscall(const char *s, const unsigned int bitflag, const int not)
{
	int p;
	unsigned int i;
	int rc = -1;

	if (*s >= '0' && *s <= '9') {
		i = string_to_uint(s);
		if (i >= MAX_NSYSCALLS)
			return -1;
		qualify_one(i, bitflag, not, -1);
		return 0;
	}

	for (p = 0; p < SUPPORTED_PERSONALITIES; p++) {
		for (i = 0; i < nsyscall_vec[p]; i++) {
			if (sysent_vec[p][i].sys_name
			 && strcmp(s, sysent_vec[p][i].sys_name) == 0
			) {
				qualify_one(i, bitflag, not, p);
				rc = 0;
			}
		}
	}

	return rc;
}
Ejemplo n.º 2
0
void set_local_time(char *buf)
{
	time_t t;
	t=string_to_uint(buf);
	//printf("I get %s %d\n",buf,strlen(buf));
	//printf("%u\n",(unsigned)t);
	stime(&t);
	printf("%s\n",ctime(&t));
	printf("Set Time Successed. . .\n");
}
Ejemplo n.º 3
0
static int
qual_desc(const char *s, const unsigned int bitflag, const int not)
{
	if (*s >= '0' && *s <= '9') {
		int desc = string_to_uint(s);
		if (desc < 0 || desc > 0x7fff) /* paranoia */
			return -1;
		qualify_one(desc, bitflag, not, -1);
		return 0;
	}
	return -1;
}
Ejemplo n.º 4
0
uint8_t
stream_read_uint8(stream_t* stream) {
	uint8_t value = 0;
	if (stream_is_binary(stream))
		stream_read(stream, &value, 1);
	else {
		char buffer[6] = {0};
		string_t str = stream_read_string_buffer(stream, buffer, 6);
		value = (uint8_t)string_to_uint(str.str, str.length, false);
	}
	return value;
}
Ejemplo n.º 5
0
uint8_t stream_read_uint8( stream_t* stream )
{
	uint8_t value = 0;
	if( stream_is_binary( stream ) )
		stream_read( stream, &value, 1 );
	else
	{
		char* str = stream_read_string( stream );
		value = (uint8_t)string_to_uint( str, false );
		string_deallocate( str );
	}
	return value;
}
Ejemplo n.º 6
0
uint32_t
stream_read_uint32(stream_t* stream) {
	uint32_t value = 0;
	if (stream_is_binary(stream)) {
		stream_read(stream, &value, 4);
		if (stream->swap)
			value = byteorder_swap32(value);
	}
	else {
		char buffer[12] = {0};
		string_t str = stream_read_string_buffer(stream, buffer, 12);
		value = (uint32_t)string_to_uint(str.str, str.length, false);
	}
	return value;
}
Ejemplo n.º 7
0
uint32_t stream_read_uint32( stream_t* stream )
{
	uint32_t value = 0;
	if( stream_is_binary( stream ) )
	{
		stream_read( stream, &value, 4 );
		if( stream && stream->swap )
			value = byteorder_swap32( value );
	}
	else
	{
		char* str = stream_read_string( stream );
		value = string_to_uint( str, false );
		string_deallocate( str );
	}
	return value;
}
Ejemplo n.º 8
0
static bool
qualify_syscall_number(const char *s, struct number_set *set)
{
	int n = string_to_uint(s);
	if (n < 0)
		return false;

	bool done = false;

	for (unsigned int p = 0; p < SUPPORTED_PERSONALITIES; ++p) {
		if ((unsigned) n >= nsyscall_vec[p])
			continue;
		add_number_to_set_array(n, set, p);
		done = true;
	}

	return done;
}
Ejemplo n.º 9
0
static int
qual_signal(const char *s, const unsigned int bitflag, const int not)
{
	unsigned int i;

	if (*s >= '0' && *s <= '9') {
		int signo = string_to_uint(s);
		if (signo < 0 || signo > 255)
			return -1;
		qualify_one(signo, bitflag, not, -1);
		return 0;
	}
	if (strncasecmp(s, "SIG", 3) == 0)
		s += 3;
	for (i = 0; i <= NSIG; i++) {
		if (strcasecmp(s, signame(i) + 3) == 0) {
			qualify_one(i, bitflag, not, -1);
			return 0;
		}
	}
	return -1;
}
static ssize_t rsc_ops_write(struct file *fp, const char __user *user_buffer,
						size_t count, loff_t *position)
{
	char buf[MAX_MSG_BUFFER], rsc_type_str[6] = {}, rpm_set[8] = {},
						key_str[6] = {};
	int i, pos, set = -1, nelems;
	char *cmp;
	uint32_t rsc_type, rsc_id, key, data;
	struct msm_rpm_request *req;

	count = min(count, sizeof(buf) - 1);
	if (copy_from_user(&buf, user_buffer, count))
		return -EFAULT;
	buf[count] = '\0';
	cmp = strstrip(buf);

	sscanf(cmp, "%7s %5s %u %d %n", rpm_set, rsc_type_str, &rsc_id,
							&nelems, &pos);
	if (strlen(rpm_set) > 6 || strlen(rsc_type_str) > 4) {
		pr_err("Invalid value of set or resource type\n");
		goto err;
	}

	if (!strcmp(rpm_set, "active"))
		set = 0;
	else if (!strcmp(rpm_set, "sleep"))
		set = 1;

	rsc_type = string_to_uint(rsc_type_str);

	if (set < 0 || nelems < 0) {
		pr_err("Invalid value of set or nelems\n");
		goto err;
	}
	if (nelems > MAX_KEY_VALUE_PAIRS) {
		pr_err("Exceeded max no of key-value entries\n");
		goto err;
	}

	req = msm_rpm_create_request(set, rsc_type, rsc_id, nelems);
	if (!req)
		return -ENOMEM;

	for (i = 0; i < nelems; i++) {
		cmp += pos;
		sscanf(cmp, "%5s %n", key_str, &pos);
		if (strlen(key_str) > 4) {
			pr_err("Key value cannot be more than 4 charecters");
			goto err;
		}
		key = string_to_uint(key_str);
		if (!key) {
			pr_err("Key values entered incorrectly\n");
			goto err;
		}

		cmp += pos;
		sscanf(cmp, "%u %n", &data, &pos);
		if (msm_rpm_add_kvp_data(req, key,
				(void *)&data, sizeof(data)))
			goto err_request;
	}

	if (msm_rpm_wait_for_ack(msm_rpm_send_request(req)))
		pr_err("Sending the RPM message failed\n");
	else
		pr_info("RPM message sent succesfully\n");

err_request:
	msm_rpm_free_request(req);
err:
	return count;
}