View | Details | Raw Unified | Return to bug 63576
Collapse All | Expand All

(-)file-4.10/src/softmagic.c.stringop (-7 / +8 lines)
Lines 427-453 Link Here
427
		return 1;
427
		return 1;
428
	case FILE_STRING:
428
	case FILE_STRING:
429
		{
429
		{
430
			int n;
430
			size_t len;
431
431
432
			/* Null terminate and eat *trailing* return */
432
			/* Null terminate and eat *trailing* return */
433
			p->s[sizeof(p->s) - 1] = '\0';
433
			p->s[sizeof(p->s) - 1] = '\0';
434
			n = strlen(p->s) - 1;
434
			len = strlen(p->s);
435
			if (p->s[n] == '\n')
435
			if (len && p->s[len - 1] == '\n')
436
				p->s[n] = '\0';
436
				p->s[len - 1] = '\0';
437
			return 1;
437
			return 1;
438
		}
438
		}
439
	case FILE_PSTRING:
439
	case FILE_PSTRING:
440
		{
440
		{
441
			char *ptr1 = p->s, *ptr2 = ptr1 + 1;
441
			char *ptr1 = p->s, *ptr2 = ptr1 + 1;
442
			unsigned int n = *p->s;
442
			unsigned int n = *p->s;
443
			size_t len;
443
			if (n >= sizeof(p->s))
444
			if (n >= sizeof(p->s))
444
				n = sizeof(p->s) - 1;
445
				n = sizeof(p->s) - 1;
445
			while (n--)
446
			while (n--)
446
				*ptr1++ = *ptr2++;
447
				*ptr1++ = *ptr2++;
447
			*ptr1 = '\0';
448
			*ptr1 = '\0';
448
			n = strlen(p->s) - 1;
449
			len = strlen(p->s);
449
			if (p->s[n] == '\n')
450
			if (len && p->s[len - 1] == '\n')
450
				p->s[n] = '\0';
451
				p->s[len - 1] = '\0';
451
			return 1;
452
			return 1;
452
		}
453
		}
453
	case FILE_BESHORT:
454
	case FILE_BESHORT:

Return to bug 63576